如何准确地测试模型载入所需时间的基准?

8

我想测试加载模块所需的时间(即 find_by_id(234) 调用)。

另外,我想知道如何跟踪页面加载所需的时间。我知道在运行 Rails 服务器时可以获取此信息,但这是在调试模式下,我想要生产速度基准测试,是否可行?

3个回答

32

为了进行快速检查,我强烈推荐查看Benchmark

一个例子是:

require "benchmark"

time = Benchmark.measure do
  a.find_by_id(234)
end
puts time

但是对于生产级别的基准测试,我建议查看New Relic。他们提供了几乎所有你能想到的东西的令人难以置信的基准测试。

他们在这里提供了免费的开发者模式:

http://support.newrelic.com/kb/docs/developer-mode


4
你可以使用这个gem: https://github.com/igorkasyanchuk/benchmark_methods 不再需要这样的代码:
t = Time.now
user.calculate_report
puts Time.now - t

现在你可以做到以下事情:
benchmark :calculate_report # in class

只需调用您的方法。
user.calculate_report

1
我强烈建议您阅读性能测试Rails指南。这是关于 rails 中可用功能的很好的概述。如果您想要进行自动化测试并查看即时结果,那么它非常适合。
对于生产服务器基准测试,New Relic可能提供了您想要的所有功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接