From: Stefan Sperling Subject: Re: Got is kinda slow To: Christian Weisgerber , gameoftrees@openbsd.org Date: Mon, 17 Apr 2023 13:36:12 +0200 On Mon, Apr 17, 2023 at 01:07:33PM +0200, Stefan Sperling wrote: > The profiler breaks got_object_parse_tree_entry() run-time down as follows: > > 80% commit_traversal_request > 70% open_tree Looking at commit_traversal_request again, we should be able to speed it up by caching trees. Currently this function loops and opens two trees per iteration. One of those trees has likely already been parsed during the previous loop iteration but has since been discarded. And when tree_path_changed() traverses into subtrees there is no caching either, which means quite some effort might be spent parsing the same trees over and over again.