Mercurial > evolve
changeset 4835:7c38a4353bb3
stablesort: add some field data about stable sort cache
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sun, 08 Sep 2019 17:47:37 +0200 |
parents | 9a52930f6781 |
children | e2465969958e |
files | hgext3rd/evolve/stablesort.py |
diffstat | 1 files changed, 55 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext3rd/evolve/stablesort.py Sun Sep 08 13:31:28 2019 +0200 +++ b/hgext3rd/evolve/stablesort.py Sun Sep 08 17:47:37 2019 +0200 @@ -77,6 +77,61 @@ actually walk the graph, (see stable range documentation). For each merge, we store the set of jumps that cover the exclusive side. + +Practical data +-------------- + +The mercurial repository has simple branching and few jumps: + + number of revisions: 69771 + number of merge: 2734 + number of jumps: 2950 + average jumps: 1.079 + median jumps: 1 + 90% jumps: 1 + 99% jumps: 3 + max jumps: 6 + jump cache size: 35 400 bytes + +Mozilla's branching is fairly simple too: + + number of revisions: 435078 + number of merge: 21035 + number of jumps: 31434 + average jumps: 1.494 + median jumps: 1 + 90% jumps: 2 + 99% jumps: 9 + max jumps: 169 + jump cache size: 377 208 bytes + +Pypy has a more complicated branching history but jumps cache remains reasonable + + number of revisions: 95010 + number of merge: 7911 + number of jumps: 24326 + average jumps: 3.075 + median jumps: 1 + 90% jumps: 5 + 99% jumps: 40 + max jumps: 329 + jump cache size: 291 912 bytes + +This still apply to larger private project: + + number of revisions: 605011 + number of merge: 118109 + number of jumps: 314925 + average jumps: 2.667 + median jumps: 1 + 90% jumps: 3 + 99% jumps: 34 + max jumps: 660 + jump cache size: 3 779 100 bytes + +It is worth noting that the last jump could be computed form other information, +removing one jump storage per merge. However this does not seems to be an issue +worth the troubles for now. """ import array