• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

rspec / rspec-expectations / 835
97%
master: 89%

Build:
Build:
LAST BUILD BRANCH: autoload-benchmark
DEFAULT BRANCH: master
Ran 15 Oct 2013 01:50AM UTC
Jobs 5
Files 43
Run time –
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
835

push

travis-ci

myronmarston
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.

1516 of 1558 relevant lines covered (97.3%)

192.81 hits per line

Jobs
ID Job ID Ran Files Coverage
2 835.2 (1.9.2) 15 Oct 2013 01:50AM UTC 0
97.01
Travis Job 835.2
3 835.3 (1.9.3) 15 Oct 2013 01:50AM UTC 0
97.01
Travis Job 835.3
5 835.5 (jruby-19mode) 15 Oct 2013 01:50AM UTC 0
97.19
Travis Job 835.5
8 835.8 (rbx-19mode) 15 Oct 2013 01:51AM UTC 0
98.85
Travis Job 835.8
9 835.9 (2.0.0) 15 Oct 2013 01:50AM UTC 0
96.94
Travis Job 835.9
Source Files on build 835
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #835
  • 3822c601 on github
  • Next Build on add_matcher_dsl_benchmark (#838)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc