From: Kjetil Barvik Date: Sat, 14 Feb 2009 17:50:34 GMT Subject: Re: [PATCH/RFC v3 7/9] write_entry(): use fstat() instead of lstat() when file is open Message-ID: <86ab8olxg5.fsf@broadpark.no> In-Reply-To: <498A9FD3.2020601@viscovery.net> Johannes Sixt writes: > Kjetil Barvik schrieb: >> And, yes, since each lstat() call cost approximately 44 microseconds >> compared to 12-16 for each lstat() on my Linux box, there was a little > ^^^^^^^ fstat()? >> performance gain from this patch. > > This does look like a good gain. But do you have hard numbers that back > the claim? OK, I have done some testing/profiling with oprofile(1), and one thing I found out was that my Linux kernel was built with SLUB debug, and of course it cost some system time to run the VM debug code. After I turned this off, the total system time when down from aprox 6 to 3 seconds for the 'git checkout -q my-v2.6.25/7' test. Also, from strace output each lstat() call now take around 16 microseconds, and each fstat() call around 12 microseconds, so for aprox 14000 changed calls (lstat() => fstat()) the performance gain should now only be (* 14000 (- 16 12)) = 56 ms, compared to 467 ms, which I reported before. -- kjetil 1) http://oprofile.sourceforge.net/about/