David Roundy wrote: > On Thu, Jan 03, 2008 at 11:11:40AM +0000, Simon Marlow wrote: >>> Anyhow, could you retry this test with the above change in methodology, >>> and let me know if (a) the pull is still slow the first time and (b) if >>> it's much faster the second time (after the reverse unpull/pull)? >> I think I've done it in both directions now, and it got faster, but still >> much slower than darcs1: >> >> $ time darcs2 unpull --from-tag 2007-09-25 -a >> Finished unpulling. >> 58.68s real 50.64s user 6.36s system 97% darcs2 unpull --from-tag >> 2007-09-25 -a >> $ time darcs2 pull -a ../ghc-darcs2 >> Pulling from "../ghc-darcs2"... >> Finished pulling and applying. >> 53.28s real 44.62s user 7.10s system 97% darcs2 pull -a ../ghc-darcs2 >> >> This is still an order of magnitude slower than darcs1 for the same >> operation. (these times are now on the local filesystem, BTW) > > I've recently found the problem leading to this slowdown (I believe) and > get about an order-of-magnitude improvement in the speed of a pull of 400 > patches in the ghc repository. It turned out to be an issue that scaled > with the size (width) of the repository, not with the number of patches > (which had been the obvious suspect), which was causing trouble when > applying to the pristine cache. > > At this point, darcs-2 outperforms darcs-1 on most tests that I've tried, > so it'd be a good time to find some more performance problems, if you > can... and I don't doubt that there are more out there.
Certainly a lot faster, nice work! Though it's still not as fast as darcs-1 here. New figures: $ time darcs2 unpull --from-tag 2007-09-25 -a Finished unpulling. 18.83s real 15.27s user 1.53s system 89% darcs2 unpull --from-tag 2007-09-25 -a $ time darcs2 pull ../ghc-darcs2-other -a Finished pulling and applying. 10.38s real 7.69s user 1.50s system 88% darcs2 pull ../ghc-darcs2-other - I repeated the darcs-1 timings for comparison: $ time darcs unpull --from-tag 2007-09-25 -a Finished unpulling. 8.04s real 7.14s user 0.90s system 99% darcs unpull --from-tag 2007-09-25 -a $ time darcs pull ~/ghc-HEAD -a Finished pulling and applying. 7.90s real 4.90s user 0.98s system 74% darcs pull ~/ghc-HEAD -a In this case darcs-1 is pulling more patches (530 vs. 400), because I'm using the latest GHC HEAD repo. Also the darcs-1 repository being pulled from is on a different, NFS mounted, filesystem, whereas the darcs-2 timings were made using repos on the same local filesystem. In all cases I tried things a few times to let caches etc. fill up. Can you repeat these? Cheers, Simon _______________________________________________ darcs-devel mailing list darcs-devel@darcs.net http://lists.osuosl.org/mailman/listinfo/darcs-devel