aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java
diff options
context:
space:
mode:
authorShawn Pearce <spearce@spearce.org>2013-04-08 18:11:30 -0700
committerShawn Pearce <spearce@spearce.org>2013-04-10 11:34:50 -0700
commitd0a533762586ce331a8f967042fa209c847c3c8d (patch)
treec7b6fb0a3ca76e3c1b08dfdb430ca1c706477e47 /org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java
parent5d446f410d7044fba165ad3deee7ac83864f0e96 (diff)
downloadjgit-d0a533762586ce331a8f967042fa209c847c3c8d.tar.gz
jgit-d0a533762586ce331a8f967042fa209c847c3c8d.zip
Steal work from delta threads to rebalance CPU load
If the configuration wants to run 4 threads the delta search work is initially split somewhat evenly across the 4 threads. During execution some threads will finish early due to the work not being split fairly, as the initial partitions were based on object count and not cost to inflate or size of DeltaIndex. When a thread finishes early it now tries to take 50% of the work remaining on a sibling thread, and executes that before exiting. This repeats as each thread completes until a thread has only 1 object remaining. Repacking Blink, Chromium's new fork of WebKit (2.2M objects 3.9G): [pack] reuseDeltas = false reuseObjects = false depth = 50 threads = 8 window = 250 windowMemory = 800m before: ~105% CPU after 80% after: >780% CPU to 100% Change-Id: I65e45422edd96778aba4b6e5a0fd489ea48e8ca3
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java')
0 files changed, 0 insertions, 0 deletions