Lazy revset benchmark timing (significant performance regression)

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed Mar 26 21:35:41 CDT 2014


I just fixed a silly error in perfrevset. I re-ran the benchmark script 
after the fix.

The comparison with 2.9.1 show a significant negative impact on most 
long revset.

This is run in the mercurial repo only for now.


Result by revset
================

Revision:
0) 2.9.1
1) current @ plus prefrevset fix

revset #0: all()    -38%
0) wall 0.002022 comb 0.000000 user 0.000000 sys 0.000000 (best of 1245)
1) wall 0.001251 comb 0.000000 user 0.000000 sys 0.000000 (best of 2064)

revset #1: draft()  +13%
0) wall 0.009069 comb 0.000000 user 0.000000 sys 0.000000 (best of 278)
1) wall 0.010228 comb 0.020000 user 0.020000 sys 0.000000 (best of 269)

revset #2: ::tip    +104%
0) wall 0.027909 comb 0.030000 user 0.030000 sys 0.000000 (best of 102)
1) wall 0.056816 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)

revset #3: draft() and ::tip    -64%
0) wall 0.034084 comb 0.030000 user 0.030000 sys 0.000000 (best of 100)
1) wall 0.012121 comb 0.010000 user 0.010000 sys 0.000000 (best of 231)

revset #4: 0::tip    +21%
0) wall 0.031064 comb 0.020000 user 0.020000 sys 0.000000 (best of 100)
1) wall 0.037473 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)

revset #5: roots(0::tip) +4%
0) wall 0.050656 comb 0.050000 user 0.040000 sys 0.010000 (best of 100)
1) wall 0.052431 comb 0.060000 user 0.060000 sys 0.000000 (best of 100)

revset #6: author(lmoscovicz) +3%
0) wall 1.011101 comb 1.010000 user 1.010000 sys 0.000000 (best of 10)
1) wall 1.042069 comb 1.040000 user 1.040000 sys 0.000000 (best of 10)

revset #7: author(mpm)  0%
0) wall 1.024331 comb 1.020000 user 1.020000 sys 0.000000 (best of 10)
1) wall 1.025307 comb 1.030000 user 1.020000 sys 0.010000 (best of 10)

revset #8: author(lmoscovicz) or author(mpm) +36%
0) wall 2.016440 comb 2.020000 user 2.020000 sys 0.000000 (best of 5)
1) wall 2.742379 comb 2.740000 user 2.740000 sys 0.000000 (best of 4)

revset #9: tip:0 +300% (outch)
0) wall 0.003652 comb 0.000000 user 0.000000 sys 0.000000 (best of 707)
1) wall 0.014643 comb 0.010000 user 0.010000 sys 0.000000 (best of 191)

revset #10: max(tip:0) -64%
0) wall 0.005329 comb 0.010000 user 0.010000 sys 0.000000 (best of 478)
1) wall 0.001938 comb 0.010000 user 0.010000 sys 0.000000 (best of 1432)

revset #11: min(0:tip) -64%
0) wall 0.005325 comb 0.010000 user 0.010000 sys 0.000000 (best of 512)
1) wall 0.001930 comb 0.000000 user 0.000000 sys 0.000000 (best of 1442)

revset #12: 0::   +99%
0) wall 0.025371 comb 0.030000 user 0.030000 sys 0.000000 (best of 110)
1) wall 0.050497 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)

revset #13: min(0::) +98%
0) wall 0.027206 comb 0.020000 user 0.020000 sys 0.000000 (best of 102)
1) wall 0.000543 comb 0.000000 user 0.000000 sys 0.000000 (best of 5062)

revset #14: ::(tip + 0:4) +114%
0) wall 0.029807 comb 0.020000 user 0.020000 sys 0.000000 (best of 100)
1) wall 0.063846 comb 0.060000 user 0.060000 sys 0.000000 (best of 100)

revset #15: ::all() + 90%
0) wall 0.043501 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)
1) wall 0.082830 comb 0.080000 user 0.080000 sys 0.000000 (best of 100)

revset #16: ::(all()- 0:4) +129%
0) wall 0.044514 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
1) wall 0.101969 comb 0.100000 user 0.100000 sys 0.000000 (best of 96)



More information about the Mercurial-devel mailing list