subcmds: reduce multiprocessing serialization overhead
Follow the same approach as 39ffd997 to reduce serialization overhead. Below benchmarks are tested with 2.7k projects on my workstation (warm cache). git tracing is disabled for benchmark. (seconds) | v2.48 | v2.48 | this CL | this CL | | -j32 | | -j32 ----------------------------------------------------------- with clean tree state: branches (none) | 5.6 | 5.9 | 1.0 | 0.9 status (clean) | 21.3 | 9.4 | 19.4 | 4.7 diff (none) | 7.6 | 7.2 | 5.7 | 2.2 prune (none) | 5.7 | 6.1 | 1.3 | 1.2 abandon (none) | 19.4 | 18.6 | 0.9 | 0.8 upload (none) | 19.7 | 18.7 | 0.9 | 0.8 forall -c true | 7.5 | 7.6 | 0.6 | 0.6 forall -c "git log -1" | 11.3 | 11.1 | 0.6 | 0.6 with branches: start BRANCH --all | 21.9 | 20.3 | 13.6 | 2.6 checkout BRANCH | 29.1 | 27.8 | 1.1 | 1.0 branches (2) | 28.0 | 28.6 | 1.5 | 1.3 abandon BRANCH | 29.2 | 27.5 | 9.7 | 2.2 Bug: b/371638995 Change-Id: I53989a3d1e43063587b3f52f852b1c2c56b49412 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/440221 Reviewed-by:Josip Sokcevic <sokcevic@google.com> Tested-by:
Kuang-che Wu <kcwu@google.com> Commit-Queue: Kuang-che Wu <kcwu@google.com>
Showing
- command.py 7 additions, 3 deletionscommand.py
- subcmds/abandon.py 18 additions, 12 deletionssubcmds/abandon.py
- subcmds/branches.py 26 additions, 23 deletionssubcmds/branches.py
- subcmds/checkout.py 19 additions, 15 deletionssubcmds/checkout.py
- subcmds/diff.py 16 additions, 11 deletionssubcmds/diff.py
- subcmds/forall.py 48 additions, 42 deletionssubcmds/forall.py
- subcmds/grep.py 27 additions, 22 deletionssubcmds/grep.py
- subcmds/prune.py 12 additions, 8 deletionssubcmds/prune.py
- subcmds/start.py 25 additions, 15 deletionssubcmds/start.py
- subcmds/status.py 16 additions, 11 deletionssubcmds/status.py
- subcmds/upload.py 14 additions, 10 deletionssubcmds/upload.py
Loading
Please register or sign in to comment