sapling/contrib
Pierre-Yves David b42c62324c revset: inline spanset containment check (fix perf regression)
Calling a function is super expensive in python. We inline the trivial range
comparison to get back to more sensible performance on common revset operation.

Benchmark result below:

Revision mapping:
0) bced32a3fd6c 2.9.2 release
1) 2ab64f462d81 current @
2) This revision


revset #0: public()
0) wall 0.010890 comb 0.010000 user 0.010000 sys 0.000000 (best of 201)
1) wall 0.012109 comb 0.010000 user 0.010000 sys 0.000000 (best of 199)
2) wall 0.012211 comb 0.020000 user 0.020000 sys 0.000000 (best of 197)

revset #1: :10000 and public()
0) wall 0.007141 comb 0.010000 user 0.010000 sys 0.000000 (best of 361)
1) wall 0.014139 comb 0.010000 user 0.010000 sys 0.000000 (best of 186)
2) wall 0.008334 comb 0.010000 user 0.010000 sys 0.000000 (best of 308)

revset #2: draft()
0) wall 0.009610 comb 0.010000 user 0.010000 sys 0.000000 (best of 279)
1) wall 0.010942 comb 0.010000 user 0.010000 sys 0.000000 (best of 243)
2) wall 0.011036 comb 0.010000 user 0.010000 sys 0.000000 (best of 239)

revset #3: :10000 and draft()
0) wall 0.006852 comb 0.010000 user 0.010000 sys 0.000000 (best of 383)
1) wall 0.014641 comb 0.010000 user 0.010000 sys 0.000000 (best of 183)
2) wall 0.008314 comb 0.010000 user 0.010000 sys 0.000000 (best of 299)

We can see this changeset gains back the regression for `and` operation on
spanset.  We are still a bit slowerfor the `public()` and `draft()`. Predicates
not touched by this changeset.
2014-04-28 15:15:36 -07:00
..
hgfixes fix_bytesmod: use the "from mercurial" form of the import to avoid breaking httpclient 2014-02-04 18:33:25 -05:00
hgsh backout of e4cb9628354c 2011-01-27 11:15:08 +01:00
macosx Make Readme.html reference current OS X release 2010-03-06 21:29:02 -08:00
plan9 hgrc.d: separate namespace for mercurial scripts 9diff and 9mail 2013-08-15 21:35:56 -04:00
vim codingstyle: remove trailing spaces in various text files 2013-04-17 03:40:18 +02:00
win32 doc: bump copyright year 2014-01-10 16:26:11 -06:00
wix wix: pull in new templates 2014-01-23 14:06:15 -06:00
bash_completion bash_completion: add global support for -b|--branch 2013-11-26 14:33:18 -06:00
buildrpm buildrpm: enhance changelog of the RPM file 2009-11-06 10:06:08 +01:00
casesmash.py cleanup: drop unused variables and an unused import 2013-07-01 20:48:56 +02:00
check-code.py check-code: detect "% inside _()" when there are leading whitespaces 2014-04-16 03:05:00 +09:00
convert-repo convertrepo: make it work with refactored convert extension 2008-03-23 21:41:03 +01:00
debugcmdserver.py cleanup: "raise SomeException()" -> "raise SomeException" 2012-05-12 16:00:58 +02:00
debugshell.py debugshell: appease pyflakes 2013-09-23 14:28:01 -07:00
dumprevlog rename util.set_binary to setbinary 2011-05-06 15:25:35 +02:00
editmerge contrib: don't hardcode path to bash interpreter 2014-03-26 11:59:13 +01:00
hg-ssh hg-ssh: read-only flag 2012-05-22 15:17:37 -07:00
hgk hgk: add .diff extension when exporting commits 2014-03-25 22:47:59 +01:00
hgperf contrib: add "hgperf" command to measure performance of commands easily 2014-02-15 19:51:20 +09:00
hgweb.fcgi mq: add a warning about uncommitted changes for qfinish 2011-11-10 15:40:34 -06:00
hgweb.wsgi mq: add a warning about uncommitted changes for qfinish 2011-11-10 15:40:34 -06:00
import-checker.py import-checker: handle standard modules with arch in the filename 2014-02-07 02:59:46 +01:00
lock-checker.py util: introduce util.debugstacktrace for showing a stack trace without crashing 2014-01-12 23:28:21 +01:00
logo-droplets.svg logo: clean up source file with scour 2010-04-05 14:33:41 -05:00
Makefile.python contrib/Makefile.python: build local Python from source 2013-02-10 00:11:45 +01:00
memory.py many, many trivial check-code fixups 2010-01-25 00:05:27 -06:00
mercurial.el en-us: penalize 2012-08-17 13:58:19 -07:00
mercurial.spec mercurial.spec: specify file modes for install 2010-08-26 23:11:03 +02:00
mergetools.hgrc contrib: remove mergetools.hgrc premerge=False for Beyond Compare and Araxis 2014-04-17 14:54:46 +02:00
mq.el Remove FSF mailing address from GPL headers 2012-01-06 16:27:13 +01:00
perf.py perf: unroll the result in perfrevset 2014-03-26 17:25:11 -07:00
pylintrc codingstyle: remove trailing spaces in various text files 2013-04-17 03:40:18 +02:00
python-hook-examples.py misc: replace .parents()[0] with p1() 2011-04-04 16:21:59 -05:00
revsetbenchmarks.py revsetbenchmark: fix error raising 2014-04-25 13:44:51 -07:00
revsetbenchmarks.txt revset: inline spanset containment check (fix perf regression) 2014-04-28 15:15:36 -07:00
sample.hgrc contrib: stop mentioning obsolete graphlog extension in sample.hgrc 2013-11-22 19:11:48 +01:00
simplemerge cleanup: drop unused variables and an unused import 2013-07-01 20:48:56 +02:00
synthrepo.py synthrepo: move from dict() construction to {} literals 2014-03-12 13:12:26 -04:00
tcsh_completion contrib: update tcsh_completion for Mercurial 1.8 2011-03-01 07:28:20 +01:00
tcsh_completion_build.sh contrib: update tcsh_completion for Mercurial 1.8 2011-03-01 07:28:20 +01:00
undumprevlog tests: run check-code on Python files without .py extension 2013-04-17 03:39:36 +02:00
xml.rnc Added RelaxNG schema for hg log XML output format 2009-12-30 02:44:37 +01:00
zsh_completion zsh_completion: complete all files for commit/backout --logfile 2013-04-17 21:06:48 +04:00