代码之家  ›  专栏  ›  技术社区  ›  Peter Camilleri

基准gem改进

  •  0
  • Peter Camilleri  · 技术社区  · 7 年前

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

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

    到目前为止,我的最佳想法是克隆旧gem,并用一个修改过的名称构建一个本地副本,比如“old\u gem\u name”。然后加载以进行比较。

    有更好的办法吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Mike Gorski    7 年前

    我会用两个不同的文件来处理这个问题。

    所以假设你有 benchmark.rb

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

    然后用你的两个不同的文件,一个叫 Gemfile-oldgem 另一个打电话来 Gemfile-newgem

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

    为旧的gem基准运行以下命令:

    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

    推荐文章