基准宝石改进
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基准宝石改进相关的知识,希望对你有一定的参考价值。
我正在努力改进自己的宝石之一。我希望能够得到一些关于我提出的各种想法的改进程度(如果有的话)的数据。
通常我使用基准/ ips工具进行测试。
因此,我想加载旧版本的gem和新版本,以进行并排测试。
我不知道如何加载同一个宝石的两个版本,并根据需要选择性地应用它们。
到目前为止,我最好的想法是克隆旧的gem,并构建一个名为“old_gem_name”的更改名称的本地副本。然后加载它以进行比较。
有没有更好的办法?
答案
我会使用两个不同的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
以上是关于基准宝石改进的主要内容,如果未能解决你的问题,请参考以下文章