simplify xml syntax files before integrating them into the executable to speed up reading
- transforms boolean values into 0 or 1
- remove unused attributes (fallthrough, dynamic in , etc)
- remove spaces and comments
- remove context attributes referring to #stay (because this is the default)
- replace Detect2Chars with StringDetect (String="xy" is shorter than char="x" char1="y")
- sort contexts by frequency of use to accelerate their search during loading
- sort attributes for better compression by rcc
loading speed comparison with:
./bin/ksyntaxhighlighter6 -fansi -s $language <<<''
_ | sh | cpp | php | md | latex |
---|---|---|---|---|---|
before | 21ms | 24ms | 47ms | 85ms | 190ms |
after | 20ms | 23ms | 43ms | 75ms | 163ms |
Library size (after strip command): 1.99M -> 1.75M