Performance regression on case-insensitive filesystems (Windows)

Martin Geisler martin at geisler.net
Tue Jul 24 10:43:28 CDT 2012


FUJIWARA Katsunori <foozy at lares.dti.ne.jp> writes:

> At Fri, 20 Jul 2012 19:00:46 +0200,
> Martin Geisler wrote:
>> 
>> [1  <text/plain (quoted-printable)>]
>> FUJIWARA Katsunori <foozy at lares.dti.ne.jp> writes:
>
>> > I also examined again performance checking on my PC, and all
>> > performance measurement results for each HG versions were degraded!
>> >
>> >     (A) 3.428 => 4.055
>> >
>> >     (B) 4.174 => 4.657
>> >
>> >     (C) 4.008 => 4.631
>> >
>> >     (D) 3.740 => 4.377
>> 
>> I've tested again with HGRCPATH=; (to disable my config file) and with
>> the TortoiseHg overlay server stopped:
>> 
>>   (A): 3.0 sec -- Mercurial 2.0
>>        4.9 sec -- Mercurial 2.3-rc
>>   (B): 4.7 sec -- Mercurial 2.3-rc with the dirstate.foldmap patch below
>>   (C): 5.0 sec -- B + your bulk normalize patch
>>   (D): 5.0 sec -- C + your windows statfiles patch
>> 
>> I'm afraid I cannot reproduce your performance improvements.
>
> Humm, on my environment (Win7 64bit, 16GB mem, exe on SSD, repo on
> HDD, 44K files in repo, Python 2.7.2), I can still reproduce
> performance improvements between (B) and (D): both use
> "dirstate.foldmap patch" below.
>
> So, it depends on characteristic of directory structure in working
> directory, doesn't it ? : for example, average directories/files per
> directory, or depth of directories.

Yes, those numbers will influence the timings since some of the patches
change the number of normcase calls for a directory from
len(os.listdir()) to 1.

I just tried the patches again with 9fb8312dbdbd as base (that adds a
fast-path to encoding .upper) and got:

2.0:
  ! wall 2.187000 comb 2.187500 user 1.078125 sys 1.109375 (best of 5)

9fb8312dbdbd:
  ! wall 2.390000 comb 2.359375 user 1.109375 sys 1.250000 (best of 10)

dirstate foldmap (B):
  ! wall 2.375000 comb 2.359375 user 1.203125 sys 1.156250 (best of 10)

bulk normalize (C):
  ! wall 2.390000 comb 2.390625 user 1.171875 sys 1.218750 (best of 10)

windows statfiles (D):
  ! wall 2.250000 comb 2.234375 user 1.140625 sys 1.093750 (best of 10)

So 9fb8312dbdbd is 9% up from 2.0, and D is only 3% up. I guess that's
pretty good!


-- 
Martin Geisler

aragost Trifork
Commercial Mercurial support
http://aragost.com/mercurial/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20120724/5fcf2cc2/attachment.pgp>


More information about the Mercurial-devel mailing list