Mercurial > hg
view contrib/macosx/distribution.xml @ 35599:af25237be091
perf: add threading capability to perfbdiff
Since we are releasing the GIL during diffing, it is interesting to see how a
thread pool would perform on diffing. We add a new `--threads` argument to
commands. Synchronizing the thread pool is a bit complex because we want to be
able to reuse it from one run to another.
On my computer (i7 with 4 cores + hyperthreading), I get the following data for
about 12000 revisions:
threads wall comb wall gain comb overhead
none 31.596715 31.59 0.00% 0.00%
1 31.621228 31.62 -0.08% 0.09%
2 16.406202 32.8 48.08% 3.83%
3 11.598334 34.76 63.29% 10.03%
4 9.205421 36.77 70.87% 16.40%
5 8.517604 42.51 73.04% 34.57%
6 7.94645 47.58 74.85% 50.62%
7 7.434972 51.92 76.47% 64.36%
8 7.070638 55.34 77.62% 75.18%
Compared to the feature disabled (threads=0), the overhead is negligible with
the threading code (threads=1), and the gain is already 48% with two threads.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Sun, 17 Dec 2017 04:31:27 +0100 |
parents | db5084d27df5 |
children |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8" standalone="no"?> <installer-gui-script minSpecVersion="1"> <title>Mercurial SCM</title> <organization>org.mercurial-scm</organization> <options customize="never" require-scripts="false" rootVolumeOnly="true" /> <welcome file="Welcome.html" mime-type="text/html" /> <license file="../../COPYING" mime-type="text/plain" /> <readme file="Readme.html" mime-type="text/html" /> <pkg-ref id="org.mercurial-scm.mercurial" version="0" auth="root" onConclusion="none">mercurial.pkg</pkg-ref> <choices-outline> <line choice="org.mercurial-scm.mercurial"/> </choices-outline> <choice id="org.mercurial-scm.mercurial" visible="false"> <pkg-ref id="org.mercurial-scm.mercurial"/> </choice> </installer-gui-script>