Mercurial > hg
view tests/test-revert-unknown.t @ 30289:1f92056c4066
revlog: optimize _chunkraw when startrev==endrev
In many cases, _chunkraw() is called with startrev==endrev. When
this is true, we can avoid an extra index lookup and some other
minor operations.
On the mozilla-unified repo, `hg perfrevlogchunks -c` says this
has the following impact:
! read w/ reused fd
! wall 0.371846 comb 0.370000 user 0.350000 sys 0.020000 (best of 27)
! wall 0.337930 comb 0.330000 user 0.300000 sys 0.030000 (best of 30)
! read batch w/ reused fd
! wall 0.014952 comb 0.020000 user 0.000000 sys 0.020000 (best of 197)
! wall 0.014866 comb 0.010000 user 0.000000 sys 0.010000 (best of 196)
So, we've gone from ~25x slower than batch to ~22.5x slower.
At this point, there's probably not much else we can do except
implement an optimized function in the index itself, including in C.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 23 Oct 2016 10:40:33 -0700 |
parents | 4c94b6d0fb1c |
children | 5c2a4f37eace |
line wrap: on
line source
$ hg init $ touch unknown $ touch a $ hg add a $ hg ci -m "1" $ touch b $ hg add b $ hg ci -m "2" Should show unknown $ hg status ? unknown $ hg revert -r 0 --all removing b Should show unknown and b removed $ hg status R b ? unknown Should show a and unknown $ ls a unknown