如何在RSpec基准测试中测试和/或禁用缓存?

时间:2015-09-01 19:21:53

标签: ruby-on-rails rspec benchmarking

尝试对我的rails应用程序的页面加载时间进行基准测试 - 第一次传递非常慢,后续页面加载速度非常快。我的第一个想法是,这可能是由于有效的缓存,但即使我清除测试运行之间的缓存,我也得到相同的传播。

feature "program index view", benchmarks: true do
  before(:each) do
    Rails.cache.clear
    puts "clearing"
  end

  scenario "loads slow first time" do
    seed_db

    time = Benchmark.realtime { visit programs_path as: @learner }

    puts "first time took #{time}"

    expect(true).to be_truthy
  end

  scenario "loads fast second time" do
    seed_db

    time = Benchmark.realtime { visit programs_path as: @learner }

    puts "second time took #{time}"

    expect(true).to be_truthy
  end


  def seed_db
    puts "starting db seed"
    # create a TON of objects here
    puts "finished db seeding"
  end
end

第一关是大约25秒!第二次它是0.28秒!

这反映了我在制作中看到的内容,其中我们偶尔会出现非常慢的响应时间,特别是在应用程序处于非活动状态或最近重新启动之后。然后在第一次ping之后,它有一段时间非常活泼。有什么想法吗?

0 个答案:

没有答案