Бенчмаркинг улучшений драгоценных камней - PullRequest
0 голосов
/ 01 сентября 2018

Я работаю над улучшением одного из моих драгоценных камней. Я хотел бы получить некоторые данные о величине улучшения (если таковое имеется) различных идей, которые мне приходят.

Обычно я провожу тестирование, используя средство сравнения / ips.

Итак, я хотел бы загрузить старую версию моего драгоценного камня и новую для проведения параллельных испытаний.

Я не знаю, как загрузить две версии одного и того же камня и заставить их применять выборочно при необходимости.

Пока что моя лучшая идея - клонировать старый гем и создать локальную копию с измененным именем, например, old_gem_name. Затем загрузите это для целей сравнения.

Есть ли лучший способ?

1 Ответ

0 голосов
/ 03 сентября 2018

Я бы подошел к этому, используя два разных Gemfiles.

Предположим, у вас есть файл benchmark.rb, который имеет следующее:

# benchmark.rb
require 'benchmark'
puts Benchmark.measure { 1000.times{ call_to_gem_method} }

Затем с двумя разными Gem-файлами, один из которых называется Gemfile-oldgem, а другой - Gemfile-newgem, вы делаете следующее:

# Gemfile-oldgem
gem "mygem", :path => "/path/to/oldgem/mygem"

Запустите это для старого теста драгоценных камней:

BUNDLE_GEMFILE=Gemfile-oldgem bundle exec ruby benchmark.rb

А для нового драгоценного камня у вас есть:

# Gemfile-newgem
gem "mygem", :path => "/path/to/newgem/mygem"

Запустите это для сравнения:

BUNDLE_GEMFILE=Gemfile-newgem bundle exec ruby benchmark.rb

...