测试查询Rails性能的最佳方法是什么

时间:2013-08-29 06:47:46

标签: ruby-on-rails ruby performance benchmarking

我使用Ruby Benchmark测试了Rails查询:

puts Benchmark.measure { 
  @product_providers = SiteController.fetch_providers(@product_types.keys)
}

这基本上是将product_provider表加入product_type的查询,但查询逻辑不在问题范围内。

protected

def self.fetch_providers product_types
    fetched_providers = {}
    if product_types && product_types.kind_of?(Array)
        product_types.each do |product_type|
            fetched_providers.merge!( { product_type.underscore => product_type.constantize.joins(:provider) } )
        end
    end
    fetched_providers
end

我的问题是:

为什么在Ruby Bencmark中测试查询,我得到的结果是:

0.000000   0.000000   0.000000 (  0.000796)

然而,当我在rails console内部运行查询时,我会在4-6秒后得到结果:)

1 个答案:

答案 0 :(得分:1)

您可以使用迷你探查器来测试效果http://miniprofiler.com/ 和关于此主题的railscast http://railscasts.com/episodes/368-miniprofiler

相关问题