stream-clone-v2: no longer use the stdlib Condition object
The `threading.Condition` object from the stdlib suffer for excessive creation/destruction of the underlying locks. This destroy its performance to a quite noticeable point. Recreating the same logic with persistent lock yield an absurd performance gain (or recovery from the slow down). Note that this problem also affect the stdlib `queue.Queue` object. This will be dealt with in the next changesets. ### benchmark.name = hg.perf.exchange.stream.consume # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.memory-target = default # benchmark.variants.num-writer = default # benchmark.variants.parallel-processing = yes # benchmark.variants.progress = no # benchmark.variants.read-from-memory = yes # benchmark.variants.version = v2 ## data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog no-thread: 0.249693 ~~~~~ threaded: 0.292601 (+17.18%, +0.04) mem-target: 0.305973 (+22.54%, +0.06) this-change: 0.305442 (+22.33%, +0.06) ## data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog no-thread: 7.244015 ~~~~~ threaded: 9.387256 (+29.59%, +2.14) mem-target: 9.901032 (+36.68%, +2.66) this-change: 9.728038 (+34.29%, +2.48) ## data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog no-thread: 13.136674 ~~~~~ threaded: 17.008865 (+29.48%, +3.87) mem-target: 18.467590 (+40.58%, +5.33) this-change: 17.788205 (+35.41%, +4.65) ## data-env-vars.name = netbsd-xsrc-all-2024-09-19-zstd-sparse-revlog no-thread: 5.317709 ~~~~~ threaded: 7.107141 (+33.65%, +1.79) mem-target: 7.338505 (+38.00%, +2.02) this-change: 7.122798 (+33.94%, +1.81) ## data-env-vars.name = netbsd-xsrc-draft-2024-09-19-zstd-sparse-revlog no-thread: 5.398368 ~~~~~ threaded: 7.163505 (+32.70%, +1.77) mem-target: 7.333354 (+35.84%, +1.93) this-change: 7.123533 (+31.96%, +1.73) ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog no-thread: 3.acbb55 ~~~~~ threaded: 3.907693 (+27.34%, +0.84) mem-target: 4.238172 (+38.11%, +1.17) this-change: 4.095587 (+33.47%, +1.03) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog no-thread: 51.934795 ~~~~~ threaded: 66.902619 (+28.82%, +14.97) mem-target: 78.194540 (+50.56%, +26.26) this-change: 72.574373 (+39.74%, +20.64) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog no-thread: 52.253858 ~~~~~ threaded: 66.397609 (+27.07%, +14.14) mem-target: 77.492938 (+48.30%, +25.24) this-change: 72.845963 (+39.41%, +20.59) ## data-env-vars.name = mozilla-try-2024-03-26-zstd-sparse-revlog # benchmark.variants.read-from-memory = no no-thread: 130.584329 ~~~~~ threaded: 145.137477 (+11.14%, +14.55) mem-target: 164.366925 (+25.87%, +33.78) this-change: 154.873570 (+18.60%, +24.29)
parent
aee193b1c784
No related branches found
No related tags found
Loading
Please register or sign in to comment