From: Julian Phillips Date: Wed, 16 Sep 2009 23:46:02 GMT Subject: Re: [RFC/PATCH v2] fetch: Speed up fetch by rewriting find_non_local_tags Message-ID: In-Reply-To: <7veiq6wkfu.fsf@alter.siamese.dyndns.org> On Wed, 16 Sep 2009, Junio C Hamano wrote: > Julian Phillips writes: > >> When trying to get a list of remote tags to see if we need to fetch >> any we were doing a linear search for the matching tag ref for the >> tag^{} commit entries. This proves to be incredibly slow for large >> numbers of tags. Rewrite the function so that we can do lookup in >> string_lists instead. >> >> For a repository with 50000 tags (and just a single commit on a single >> branch), a fetch that does nothing goes from ~ 1m50s to ~4.2s. >> >> Signed-off-by: Julian Phillips >> --- >> >> Not only does this not require a custom hash table, it is also slightly >> faster than the last version (~4.2s vs ~4.5s). > > I am just curious. How would a "just one item lookbehind" code perform > compared to this one? The code you wrote ealier is almost the same as the string_list version, ~4.3s, so very marginally slower but a lot less code change. Personally I'd be happy with any of the three, so long as I don't have to wait 30s to find out that nothing's happened at $dayjob anymore ;) -- Julian --- QOTD: If it's too loud, you're too old.