BigW Consortium Gitlab
This benchmark suite uses benchmark-ips (https://github.com/evanphx/benchmark-ips) behind the scenes. Specs can be turned into benchmark specs by setting "benchmark" to "true" in the top-level describe block like so: describe SomeClass, benchmark: true do end Writing benchmarks can be done using custom RSpec matchers, for example: describe MaruTheCat, benchmark: true do describe '#jump_in_box' do it 'should run 1000 iterations per second' do maru = described_class.new expect { maru.jump_in_box }.to iterate_per_second(1000) end end end By default the "iterate_per_second" expectation requires a standard deviation under 30% (this is just an arbitrary default for now). You can change this by chaining "with_maximum_stddev" on the expectation: expect { maru.jump_in_box }.to iterate_per_second(1000) .with_maximum_stddev(10) This will change the expectation to require a maximum deviation of 10%. Alternatively you can use the it block style to write specs: describe MaruTheCat, benchmark: true do describe '#jump_in_box' do subject { -> { described_class.new } } it { is_expected.to iterate_per_second(1000) } end end Because "iterate_per_second" operates on a block, opposed to a static value, the "subject" method must return a Proc. This looks a bit goofy but I have been unable to find a nice way around this.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
gitlab_stubs | Loading commit data... | |
matchers | Loading commit data... | |
api_helpers.rb | Loading commit data... | |
capybara.rb | Loading commit data... | |
capybara_helpers.rb | Loading commit data... | |
db_cleaner.rb | Loading commit data... | |
factory_girl.rb | Loading commit data... | |
filter_spec_helper.rb | Loading commit data... | |
fixture_helpers.rb | Loading commit data... | |
login_helpers.rb | Loading commit data... | |
markdown_feature.rb | Loading commit data... | |
mentionable_shared_examples.rb | Loading commit data... | |
relative_url.rb | Loading commit data... | |
repo_helpers.rb | Loading commit data... | |
select2_helper.rb | Loading commit data... | |
services_shared_context.rb | Loading commit data... | |
setup_builds_storage.rb | Loading commit data... | |
stub_configuration.rb | Loading commit data... | |
stub_gitlab_calls.rb | Loading commit data... | |
stub_gitlab_data.rb | Loading commit data... | |
taskable_shared_examples.rb | Loading commit data... | |
test_env.rb | Loading commit data... | |
webmock.rb | Loading commit data... |