cppcheck/tools
Thomas Jarosch 3c915b534d Match compiler: Collect and cache plain C-strings
Profiler runs with gperftools showed we were spending
a lot of time in strlen() even with compiled match patterns.

If you compare a std::string with a plain C-string,
the comparison operator needs to calculate the length
of the C-string via strlen().

We can avoid this by turning all C-strings into C++ strings,
which cache the string length internally.

The match compiler has been adapted to collect all
C-strings during compilation and aggregate them.

Benchmark on the 'rpm' code base on a Core i7 920 box:

cppcheck without matchcompiler:
real    0m30.977s

cppcheck with previous matchcompiler:
real    0m28.157s

cppcheck with cached C-strings:
real    0m17.823s
2012-12-30 23:24:28 +01:00
..
dmake.cpp build: rename LIBDIR to SRCDIR 2012-12-11 09:30:37 +01:00
dmake.vcproj Tools: Update VS project file. 2011-08-11 23:40:10 +03:00
extracttests.py Python 3 compatibility for the helper scripts 2012-12-25 13:12:58 +01:00
matchcompiler.py Match compiler: Collect and cache plain C-strings 2012-12-30 23:24:28 +01:00
times-tags.sh times: added shell script that executes previous tags 2012-11-30 12:12:04 +01:00
times.c Silence cppcheck warning 2012-12-25 15:28:58 +01:00
times.sh tools/times: minor tweaks 2012-11-27 12:20:23 +01:00
tools.pro Add general PRO file for console builds. 2012-06-18 09:28:32 +03:00