- Fix performance degradation issues.
New benchmark results, for reference:
$ ./vendor/bin/phpbench run benchmarks/EngineBenchmark.php --report=aggregate
PhpBench 0.15-dev (@git_version@). Running benchmarks.
Using configuration file: ./yay/phpbench.json
\EngineBenchmark
benchMacroExpansion I4 P0 25.371 25.114 (ms) : 0.539ms 2.13%
benchMacroExpansion I4 P1 59.729 59.920 (ms) : 1.007ms 1.69%
benchMacroExpansion I4 P2 104.914 104.161 (ms) : 1.942ms 1.85%
benchMacroExpansion I4 P3 163.220 163.037 (ms) : 3.374ms 2.07%
benchMacroExpansion I4 P4 313.258 313.639 (ms) : 1.739ms 0.56%
benchMacroExpansion I4 P5 468.592 464.465 (ms) : 8.165ms 1.74%
benchMacroExpansion I4 P6 826.266 822.542 (ms) : 6.465ms 0.78%
1 subjects, 35 iterations, 7 revs, 0 rejects, 0 failures, 0 warnings
(best [mean] worst) = 24,912.000 [280,192.829 278,982.569] 26,429.000 (μs)
⅀T: 9,806,749.000μs μSD/r 3,318.799μs μRSD/r: 1.544%
+-----------------+---------------------+--------+------+-----+-----------+
| benchmark h | mem_peak | best | mean | worst | diff |
+-----------------+---------------------+--------+------+-----+-----------+
| EngineBench | 19,495,632b | 24.912ms | 25.371ms | 26.429ms | 1.00x |
| EngineBench | 45,612,440b | 58.146ms | 59.729ms | 60.852ms | 2.35x |
| EngineBench | 81,132,472b | 102.792ms | 104.914ms | 108.012ms | 4.14x |
| EngineBench | 124,487,008b | 158.990ms | 163.220ms | 168.434ms | 6.43x |
| EngineBench | 238,881,608b | 310.390ms | 313.258ms | 315.611ms | 12.35x |
| EngineBench | 52,887,416b | 461.669ms | 468.592ms | 483.650ms | 18.47x |
| EngineBench | 90,814,552b | 818.067ms | 826.266ms | 834.284ms | 32.57x |
+-----------------+---------------------+--------+------+-----+-----------+
There is no before result because the benchmarks took way too long to finish.