Я создал rspec-benchmark Ruby gem для написания тестов производительности в RSpec.У него много ожиданий относительно скорости тестирования, использования ресурсов и масштабируемости.
Например, чтобы проверить, насколько быстро ваш код:
expect { ... }.to perform_under(60).ms
Или сравнить с другой реализацией:
expect { ... }.to perform_faster_than { ... }.at_least(5).times
Или для проверки вычислительной сложности:
expect { ... }.to perform_logarithmic.in_range(8, 100_000)
Или для просмотра количества выделенных объектов:
expect {
_a = [Object.new]
_b = {Object.new => 'foo'}
}.to perform_allocation({Array => 1, Object => 2}).objects