On 10/07/2011 12:16 AM, Martin Fick wrote: > I downloaded your patch series and tested it on my repos. Very cool (though a bit premature, as you discovered). The patch series still has a known performance regression in the area of do_for_each_ref(), which I hope to figure out soon. I will definitely tell you when I think that the patch series is ready for more serious testing (hopefully today) in the hopes that you can benchmark it against your repo. In the future, please tell me the SHA1 of any versions that you test, as I am still frequently non-ff updating the hierarchical-refs branch. > Here are the best timings for all the good patches that > others have submitted to fix many of the previous problems I > brought up: What are, in your measurements, the "good patches" that you consider contenders performance-wise? (I've lost track because there have been so many suggestions in this area.) It would be great if you would serve as a kind of benchmarking referee/clearinghouse for the various suggested patches. I have been benchmarking with some rough scripts that I wrote [1]; the current status is appended below (the numbers are clock times in seconds). FWIW the attached output was generated using roughly the following commands: t/make-refperf-repo --refs=10000 --commits=20000 cp t/refperf-many . # Adjust REFPERF_BRANCH in ./refperf-many: $EDITOR ./refperf-many revs="v1.7.6 v1.7.7 origin/master origin/hierarchical-refs^^ origin/hierarchical-refs^ origin/hierarchical-refs origin/master" ./refperf-many $revs t/refperf-summary $revs >refperf-summary.out See the comments at the top of the scripts for more details. Please suggest more tests to be added to t/refperf! > It would be nice if you could rebase your work on top of > some of the other patches also so that I could see those > results. I might give that a try if I have the time and it > is easy (or I might rebase those patches on yours). I believe that at least some of the other patches will be superseded by mine. When I get my patch series done I will look into it in more detail... Michael [1] Branch "refperf" at git://github.com/mhagger/git.git -- Michael Haggerty mhagger@xxxxxxxxxxxx http://softwareswirl.blogspot.com/
=================================== ======= ======= ======= ======= ======= ======= Test name [0] [1] [2] [3] [4] [5] =================================== ======= ======= ======= ======= ======= ======= branch-loose-cold 5.84 5.38 6.05 0.53 0.47 0.56 branch-loose-warm 0.12 0.11 0.13 0.00 0.02 0.03 for-each-ref-loose-cold 6.83 6.45 6.13 8.21 8.69 8.28 for-each-ref-loose-warm 0.25 0.25 0.25 0.84 0.84 0.84 checkout-loose-cold 4.55 5.08 5.76 0.73 0.60 0.68 checkout-loose-warm 0.11 0.11 0.12 0.03 0.02 0.04 checkout-orphan-loose 0.10 0.10 0.11 0.01 0.02 0.01 checkout-from-detached-loose 0.97 1.05 0.95 7.80 8.27 8.37 branch-contains-loose-cold 14.98 15.44 18.54 16.46 16.91 17.54 branch-contains-loose-warm 9.44 8.97 10.15 9.60 9.58 9.71 pack-refs-loose 0.97 1.00 1.37 1.69 1.62 1.65 branch-packed-cold 0.49 0.63 0.81 1.38 1.37 1.45 branch-packed-warm 0.02 0.02 0.05 0.77 0.74 0.80 for-each-ref-packed-cold 1.18 0.97 1.56 1.33 2.03 1.51 for-each-ref-packed-warm 0.15 0.15 0.16 0.52 0.52 0.50 checkout-packed-cold 0.84 0.60 0.70 0.96 0.94 1.28 checkout-packed-warm 0.02 0.09 0.04 0.41 0.41 0.44 checkout-orphan-packed 0.01 0.02 0.10 0.38 0.39 0.42 checkout-from-detached-packed 6.94 7.35 9.18 1.31 1.35 1.45 branch-contains-packed-cold 11.19 10.81 12.35 10.91 10.09 10.16 branch-contains-packed-warm 10.24 9.90 11.19 9.13 9.07 9.13 clone-loose-cold 93.77 90.65 98.07 99.03 103.72 101.85 clone-loose-warm 3.12 3.19 3.24 3.56 3.60 3.50 fetch-nothing-loose 0.85 0.84 0.87 1.20 1.18 1.21 pack-refs 0.12 0.13 0.14 0.51 0.54 0.51 fetch-nothing-packed 0.85 0.84 0.86 1.20 1.19 1.20 clone-packed-cold 2.17 2.38 2.50 2.28 2.46 2.34 clone-packed-warm 0.32 0.34 0.39 0.40 0.38 0.30 fetch-everything-cold 92.37 95.96 102.20 100.80 104.72 106.85 fetch-everything-warm 5.55 5.65 5.53 6.26 6.27 6.35 =================================== ======= ======= ======= ======= ======= ======= [0] v1.7.6 (refperf.times.d78c84e8698e750139667bc724b08eb34e795b65) [1] v1.7.7 (refperf.times.a258e475eb74e183e9e68ca30e32c5253081356d) [2] origin/master (refperf.times.27897d25f1b36d400b82b655701b87fd205dbc2f) [3] origin/hierarchical-refs^^ (refperf.times.eabcf1ed884d95878f12ca5ea32a3e20c70194f2) [4] origin/hierarchical-refs^ (refperf.times.be9118234275c4fa6002ef97d989b0d28c94c0bd) [5] origin/hierarchical-refs (refperf.times.74d1ae38f70f4f97745caf235ef3f34b3e326ad4)