[PATCH 0 of 5] speed up check-code
simohe at besonet.ch
Sat Jun 8 13:56:58 CDT 2013
This patches speed up code checking by optimising pattern matching.
Fixing and compiling patterns is moved to module loading. Before this
operations were done for each file to check, now they are only done once.
This is an advantage when many files are checked.
Before the required patterns where checked and fixed only. (Only errors
were prepared when no warnings, only patterns for tests were prepared when
only test files were checked). Now all patterns are prepared. This is a
disadvantage when only checking some files. But the speed gain for
checking many files is big compared to the slowdown for one file. (If it
would get a problem, on access preparation could be implemented. But this
is not this easy.)
Time measurements are inaccurate because jitter of run time is big. The
values below show at least the tendencies.
=Patch 1: only fix patterns once=
run time for test-check-code-hg.t goes down from 64 to 60 s.
run time for checking single files goes up a bit, in the range of 0.4 s.
=Patch 2: only compile patterns once=
run time for test-check-code-hg.t goes down some seconds.
run time for checking a single file goes up some 0.1 seconds.
=Patch 3: only compile filters once=
Because there are only some filters
There is no speed loss for a single file because there are only some filters.
=Patch 4 + 5: use re2 for pattern matching=
no idea about the speedup of using re2 because it is not installed here
More information about the Mercurial-devel