From: Jeff Hostetler Date: Wed, 15 Feb 2017 14:27:53 GMT Subject: Re: [PATCH 0/5] A series of performance enhancements in the memihash and name-cache area Message-ID: <16b1259c-4cdc-8f4d-db47-d724386a3d2b@jeffhostetler.com> In-Reply-To: <20170214220332.753i4tgclm62er4f@sigill.intra.peff.net> On 2/14/2017 5:03 PM, Jeff King wrote: > On Tue, Feb 14, 2017 at 12:31:46PM +0100, Johannes Schindelin wrote: > >> On Windows, calls to memihash() and maintaining the istate.name_hash and >> istate.dir_hash HashMaps take significant time on very large >> repositories. This series of changes reduces the overall time taken for >> various operations by reducing the number calls to memihash(), moving >> some of them into multi-threaded code, and etc. >> >> Note: one commenter in https://github.com/git-for-windows/git/pull/964 >> pointed out that memihash() only handles ASCII correctly. That is true. >> And fixing this is outside the purview of this patch series. > Out of curiosity, do you have numbers? Bonus points if the speedup can > be shown via a t/perf script. > > We have a read-cache perf-test already, but I suspect you'd want > something more like "git status" or "ls-files -o" that calls into > read_directory(). I have some informal numbers in a spreadsheet. I was seeing a 8-9% speed up on a status on my gigantic repo. I'll try to put together a before/after perf-test to better demonstrate this. Jeff