On 2008.04.24 16:35:30 -0600, zooko <[EMAIL PROTECTED]> scribbled 1.1K
characters:
> Folks:
>
> A new user started to convert his company to darcs, but then had to
> back out and go back to using SVN when it turned out that "darcs
> whatsnew" took 17 seconds and his co-workers couldn't stand that.
> (The equivalent call, "svn diff" takes around 1.7 seconds -- about
> 10x as fast.)
>
> He gave me this count of files:
>
> find . -type f |grep -v \.svn|wc
> 4762 4763 229874
>
> He gave me an strace of "darcs whatsnew" with -t (print relative
> timestamp) and -T (print time spent in each syscall). The whole
> thing is interesting reading. For example:
>
> grep 'stat64("/home/darcs-cache//pristine.hashed"' log2 | wc -l
> 3578
>
> It looks like there is probably quite a bit of room for optimization
> in darcs-2's use of the filesystem.
>
> Regards,
>
> Zooko
>
> Here is the log.bz2 file. Sorry for the long URL:
>
> http://tahoebs1.allmydata.com:8123/uri/URI%3ACHK%
> 3Ahzdsgztpvd5uip4tb7uaude4ua%
> 3Acgwu6vnrspq2hxpb4gugs6yprn2iyuz7tpk7k7yesqvnkffksh4q%3A3%3A10%
> 3A807696?filename=log2.bz2
Yeah. Some of those stats are quite redundant; here's an early section, sorted:
0.000042 stat64("/root/.darcs/defaults", 0x47ed48) = -1 ENOENT (No such
file or directory) <0.000006>
0.000039 stat64("/root/.darcs/defaults", 0x465898) = -1 ENOENT (No such
file or directory) <0.000006>
0.000039 stat64("/root/.darcs/defaults", 0x465d60) = -1 ENOENT (No such
file or directory) <0.000006>
0.000039 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000005>
0.000039 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000005>
0.000039 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000005>
0.000039 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000006>
0.000039 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000006>
0.000039 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000006>
0.000040 stat64("/root/.darcs/defaults", 0x4640a0) = -1 ENOENT (No such
file or directory) <0.000006>
0.000040 stat64("/root/.darcs/defaults", 0x464238) = -1 ENOENT (No such
file or directory) <0.000006>
0.000040 stat64("/root/.darcs/defaults", 0x465238) = -1 ENOENT (No such
file or directory) <0.000005>
0.000040 stat64("/root/.darcs/defaults", 0x4653d0) = -1 ENOENT (No such
file or directory) <0.000006>
0.000040 stat64("/root/.darcs/defaults", 0x465568) = -1 ENOENT (No such
file or directory) <0.000006>
0.000040 stat64("/root/.darcs/defaults", 0x465a30) = -1 ENOENT (No such
file or directory) <0.000006>
0.000040 stat64("/root/.darcs/defaults", 0x465bc8) = -1 ENOENT (No such
file or directory) <0.000006>
0.000040 stat64("/root/.darcs/defaults", 0x465ef8) = -1 ENOENT (No such
file or directory) <0.000006>
0.000040 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000005>
0.000040 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000006>
0.000040 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000006>
0.000041 stat64("/root/.darcs/defaults", 0x4650a0) = -1 ENOENT (No such
file or directory) <0.000005>
0.000042 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000006>
0.000043 stat64("/root/.darcs/defaults", 0x465700) = -1 ENOENT (No such
file or directory) <0.000006>
0.000043 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000006>
0.000044 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000005>
0.000048 stat64("/root/.darcs/defaults", 0x47eee0) = -1 ENOENT (No such
file or directory) <0.000006>
0.000049 stat64("_darcs", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<0.000006>
0.000070 stat64("_darcs/prefs/defaults", 0x4641a0) = -1 ENOENT (No such
file or directory) <0.000006>
0.000070 stat64("_darcs/prefs/defaults", 0x465338) = -1 ENOENT (No such
file or directory) <0.000006>
0.000070 stat64("_darcs/prefs/defaults", 0x465668) = -1 ENOENT (No such
file or directory) <0.000006>
0.000070 stat64("_darcs/prefs/defaults", 0x465e60) = -1 ENOENT (No such
file or directory) <0.000006>
0.000070 stat64("_darcs/prefs/defaults", 0x47ee48) = -1 ENOENT (No such
file or directory) <0.000006>
0.000071 stat64("_darcs/prefs/defaults", 0x4651a0) = -1 ENOENT (No such
file or directory) <0.000006>
0.000071 stat64("_darcs/prefs/defaults", 0x4654d0) = -1 ENOENT (No such
file or directory) <0.000006>
0.000071 stat64("_darcs/prefs/defaults", 0x465800) = -1 ENOENT (No such
file or directory) <0.000007>
0.000071 stat64("_darcs/prefs/defaults", 0x465cc8) = -1 ENOENT (No such
file or directory) <0.000006>
0.000073 stat64("_darcs/prefs/defaults", 0x464008) = -1 ENOENT (No such
file or directory) <0.000006>
0.000073 stat64("_darcs/prefs/defaults", 0x465008) = -1 ENOENT (No such
file or directory) <0.000006>
0.000073 stat64("_darcs/prefs/defaults", 0x465b30) = -1 ENOENT (No such
file or directory) <0.000006>
0.000074 stat64("_darcs/prefs/defaults", 0x465998) = -1 ENOENT (No such
file or directory) <0.000006>
Now, I'm far from an expert in this low-level stuff, but some of that looks
quite pointless to me.
--
gwern
C3I Uzi unix B-1B ies joe security MI5 Dateline SC
pgpGSPBEF3c6B.pgp
Description: PGP signature
_______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
