用于性能基准测试的Rails gems /工具?

时间:2011-01-27 11:05:37

标签: ruby-on-rails rspec benchmarking

我正在寻找监控/测试rails性能的工具,而且我找不到任何特别有效的东西。我已经阅读了rails的“性能”指南,但我使用的是RSpec而不是Rake:Test,所以我并不是特别热衷于使用rake:test框架。

那么,除了rake:测试基准测试员之外,人们在轨道中使用什么进行性能测试?任何建议赞赏

2 个答案:

答案 0 :(得分:10)

性能基准测试是您根据自己的要求获得不同意见的其中一项。我一遍又一遍地听到的一件事是,你不应该在早期就过度表现。我不确定你的应用程序在哪里,但这可能需要考虑。在开发了一个相当大的应用程序之后,我可以诚实地说我同意它们。最好在开发时使用良好实践,并等待稍后进行性能调优。最佳实践包括索引数据库列等内容。

对于实时Rails应用程序的性能监控,New Relic是最好的工具之一*。免费计划有点受限,因为它只提供30分钟的历史数据,但它收集的信息是无价的。一些像Heroku和Engine Yard这样的云主机提供免费的铜牌计划升级,可以存储一周的数据。获得有关您的申请的信息后,您可以做出明智的决定,将重点放在何处。

*我的意见

答案 1 :(得分:1)

您的应用需要进行一些性能测试时,默认的基于TestUnit的性能基准测试是一个很好的开始。但是,您不应该止步于此,并应考虑根据应用程序的性质使用各种工具。

例如,使用request-log-analyzer之类的工具分析生产日志是识别真正性能瓶颈的好方法。 Bullet是您可以在开发环境中运行的另一个很棒的工具,用于识别数据库调用中的性能低效。对于低级别基准测试,rails还为您提供模型,控制器和视图中的benchmark helper methods。如果您专注于调整应用程序的某些特定部分,这可能很方便。

值得注意的是, rspec 并不是基准测试性能的最佳工具(迄今为止)。在我看来,试图断言像it should_take_less_than 50这样的东西正在扩展性能测试的想法,并试图强迫它进入BDD的概念。关于绝对期望的表现较少,更多的是关于识别应用程序中最慢的部分并使其更快。

该主题有许多在线资源。我发现这些轨道广播是一个很好的起点: