Ran
|
Files
43
|
Run time
–
|
Badge
Embed ▾
README BADGES
|
push
travis-ci
Add benchmarks for the new implementation of the custom matcher DSL. Results are includde for: - MRI 2.0.0, MRI 1.9.3, JRuby 1.7.4 - Against 2.14.3, 3.0.0.pre before matcher DSL rewrite, 3.0.0.pre after matcher DSL rewrite Conclusions: * Getting an instance of a custom matcher was insanely slow in 2.x, and it looks like the `making_declared_methods_public` hack for 1.8.6 was the primary source of that. Without that, getting an instance of a matcher is ~20x faster. To see what changed between 2.14.3 and the commit used for this benchmark, go to: https://github.com/rspec/rspec-expectations/compare/v2.14.3...4c47e4c43#diff-a51020971ade2c87f1d5b93f20d711c7L6 * With our new custom matcher DSL, using a matcher is approximately the same perf. However, defining a matcher is about 10x slower (since it defines a subclass) while getting an instance of an already defined matcher is about 10x faster. Overall, I think this is a net win, because users almost certainly use existing matchers more often then they define them. (The exception would be if they define custom matchers they don't use, but that would be very odd). Closes #338.
1426 of 1470 relevant lines covered (97.01%)
40.11 hits per line
Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line |
---|