基准宝石改进

问题描述 投票:0回答:1

我正在努力改进自己的宝石之一。我希望能够得到一些关于我提出的各种想法的改进程度(如果有的话)的数据。

通常我使用基准/ ips工具进行测试。

因此,我想加载旧版本的gem和新版本,以进行并排测试。

我不知道如何加载同一个宝石的两个版本,并根据需要选择性地应用它们。

到目前为止,我最好的想法是克隆旧的gem,并构建一个名为“old_gem_name”的更改名称的本地副本。然后加载它以进行比较。

有没有更好的办法?

ruby rubygems benchmarking
1个回答
2
投票

我会使用两个不同的Gemfiles来解决这个问题。

所以假设你有一个benchmark.rb文件具有以下内容:

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

然后用你的两个不同的Gemfiles,一个叫做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

© www.soinside.com 2019 - 2024. All rights reserved.