From: Michael Haggerty <mhagger@alum.mit.edu>
To: Martin Fick <mfick@codeaurora.org>
Cc: git@vger.kernel.org
Subject: Scalable reference handling
Date: Fri, 07 Oct 2011 17:51:46 +0200 [thread overview]
Message-ID: <4E8F2012.90108@alum.mit.edu> (raw)
In-Reply-To: <4E8E6E8E.5070909@alum.mit.edu>
[-- Attachment #1: Type: text/plain, Size: 1666 bytes --]
On 10/07/2011 05:14 AM, Michael Haggerty wrote:
> 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.
I just pushed versions to github that I think are ready for some
preliminary testing. There were some silly inefficiencies in the
version that you tested earlier, so this version is considerably faster
in a few key tests.
I don't have complete benchmarking results, but I have attached what I
have. I wouldn't put much weight on small differences in the numbers
because the computer was not 100% quiescent while I ran the tests. But
I think the results are impressive: the new code (columns 5-8) is a bit
slower in only a few cases but faster (sometimes by a large factor) in
many other cases.
I can't write more now, but Martin, if you have time to benchmark
9944c7faf903a95d4ed9de284ace32debe21cdc1 against your repository, I
would be very interested to learn the results.
BTW I am not asking anybody to review the patch series yet; I would like
to do some more tests and cleanup first. But of course I wouldn't
object to feedback. A good starting point would be the comments at the
top of refs.c, where the basic data structures are explained.
Michael
--
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
[-- Attachment #2: refperf-summary-3.out --]
[-- Type: text/plain, Size: 4983 bytes --]
=================================== ======= ======= ======= ======= ======= ======= ======= ======= =======
Test name [0] [1] [2] [3] [4] [5] [6] [7] [8]
=================================== ======= ======= ======= ======= ======= ======= ======= ======= =======
branch-loose-cold 5.14 5.80 4.98 4.55 5.03 0.41 0.45 0.45 0.51
branch-loose-warm 0.10 0.12 0.12 0.19 0.11 0.02 0.02 0.03 0.02
for-each-ref-loose-cold 6.02 6.36 7.48 5.62 6.27 5.32 5.02 5.24 5.01
for-each-ref-loose-warm 0.25 0.25 0.27 0.25 0.25 0.26 0.26 0.25 0.26
checkout-loose-cold 5.47 5.03 5.66 5.39 5.72 0.65 0.77 0.95 0.59
checkout-loose-warm 0.11 0.11 0.11 0.11 0.11 0.02 0.03 0.03 0.03
checkout-orphan-loose 0.09 0.09 0.10 0.10 0.10 0.03 0.01 0.01 0.02
checkout-from-detached-loose-cold N/A N/A N/A N/A N/A N/A N/A N/A N/A
checkout-from-detached-loose-warm N/A N/A N/A N/A N/A N/A N/A N/A N/A
branch-contains-loose-cold 14.69 13.95 13.76 13.84 14.07 14.08 14.12 14.01 14.77
branch-contains-loose-warm 8.99 8.89 8.74 8.82 8.80 8.81 8.84 8.76 8.91
pack-refs-loose 1.23 1.02 1.02 1.02 1.01 1.02 1.00 0.99 1.03
branch-packed-cold 0.66 0.65 0.84 0.67 0.52 0.76 0.58 0.55 0.59
branch-packed-warm 0.01 0.01 0.03 0.03 0.02 0.02 0.05 0.02 0.05
for-each-ref-packed-cold 1.38 1.29 1.07 1.13 1.05 1.08 1.26 1.05 1.27
for-each-ref-packed-warm 0.17 0.16 0.17 0.17 0.17 0.16 0.17 0.16 0.16
checkout-packed-cold 8.74 7.75 7.75 1.59 1.61 1.79 1.54 1.55 1.53
checkout-packed-warm 0.03 0.05 0.04 0.04 0.05 0.05 0.03 0.05 0.06
checkout-orphan-packed 0.04 0.01 0.01 0.03 0.02 0.02 0.05 0.05 0.02
checkout-from-detached-packed-cold 8.88 8.22 8.12 1.98 1.81 1.94 1.99 1.88 1.97
checkout-from-detached-packed-warm 6.55 6.43 6.44 0.44 0.46 0.45 0.46 0.46 0.49
branch-contains-packed-cold 11.59 10.73 10.37 9.42 9.24 9.40 9.37 9.56 9.34
branch-contains-packed-warm 10.20 9.79 9.83 8.68 8.61 8.68 8.61 8.82 9.33
clone-loose-cold 105.58 86.98 89.42 88.96 88.19 87.01 87.20 87.11 88.20
clone-loose-warm 3.26 3.11 3.18 3.10 3.17 3.14 3.14 3.21 3.16
fetch-nothing-loose 0.85 0.84 0.86 0.85 0.84 0.88 0.84 0.84 0.84
pack-refs 0.12 0.14 0.16 0.13 0.15 0.14 0.14 0.15 0.14
fetch-nothing-packed 0.84 0.84 0.86 0.85 0.89 0.85 0.84 0.84 0.83
clone-packed-cold 2.72 2.33 2.11 2.19 2.23 2.14 2.24 2.01 2.16
clone-packed-warm 0.40 0.40 0.33 0.40 0.28 0.29 0.33 0.31 0.31
fetch-everything-cold 106.28 92.92 94.12 88.76 91.62 88.75 89.49 89.78 91.43
fetch-everything-warm 5.56 5.63 5.70 5.62 5.63 5.66 5.69 5.71 5.78
=================================== ======= ======= ======= ======= ======= ======= ======= ======= =======
[0] v1.7.6 (refperf.times.d78c84e8698e750139667bc724b08eb34e795b65)
[1] v1.7.7 (refperf.times.a258e475eb74e183e9e68ca30e32c5253081356d)
[2] origin/master (refperf.times.27897d25f1b36d400b82b655701b87fd205dbc2f)
[3] 16583974c20b856bb60b5a733020425c16a19670^ (refperf.times.558b49c8489c95cf966b959c3444c95d177dc4dc)
[4] 16583974c20b856bb60b5a733020425c16a19670 (refperf.times.16583974c20b856bb60b5a733020425c16a19670)
[5] origin/hierarchical-refs^^^^ (refperf.times.5f5a126553eef88455f7deb2745c5f93073bfe69)
[6] origin/hierarchical-refs^^^ (refperf.times.a306af145856f8296bf2ff4a3ace5e86ac3b1fc8)
[7] origin/hierarchical-refs^ (refperf.times.fd53cf7a7fcc360f30ea0ec5b964cefeec70c11b)
[8] origin/hierarchical-refs (refperf.times.9944c7faf903a95d4ed9de284ace32debe21cdc1)
next prev parent reply other threads:[~2011-10-07 15:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-05 21:29 66 patches and counting Michael Haggerty
2011-10-05 21:36 ` Junio C Hamano
2011-10-05 21:55 ` Jonathan Nieder
2011-10-06 22:16 ` Martin Fick
2011-10-07 1:59 ` Martin Fick
2011-10-07 3:14 ` Michael Haggerty
2011-10-07 15:51 ` Michael Haggerty [this message]
2011-10-07 18:51 ` Scalable reference handling Martin Fick
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E8F2012.90108@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=git@vger.kernel.org \
--cc=mfick@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).