mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
revlog: increase I/O bound to 4x the amount of data consumed
This doesn't affect normal clones since they'd be bound by the CPU bound below anyway -- it does, however, improve generaldelta clones significantly. This also results in better deltaing for generaldelta clones -- in generaldelta clones, we calculate deltas with respect to the closest base if it has a higher revision number than either parent. If the base is on a significantly different branch, this can result in pointlessly massive deltas. This reduces the number of bases and hence the number of bad deltas. Empirically, for a highly branchy repository, this resulted in an improvement of around 15% to manifest size.
This commit is contained in:
parent
fe51051ee5
commit
1acd4cfca4
@ -1267,7 +1267,7 @@ class revlog(object):
|
||||
# the amount of I/O we need to do.
|
||||
# - 'compresseddeltalen' is the sum of the total size of deltas we need
|
||||
# to apply -- bounding it limits the amount of CPU we consume.
|
||||
if (d is None or dist > textlen * 2 or l > textlen or
|
||||
if (d is None or dist > textlen * 4 or l > textlen or
|
||||
compresseddeltalen > textlen * 2 or
|
||||
(self._maxchainlen and chainlen > self._maxchainlen)):
|
||||
text = buildtext()
|
||||
|
Loading…
Reference in New Issue
Block a user