我正在寻找监控/测试rails性能的工具,而且我找不到任何特别有效的东西。我已经阅读了rails的“性能”指南,但我使用的是RSpec而不是Rake:Test,所以我并不是特别热衷于使用rake:test框架。
那么,除了rake:测试基准测试员之外,人们在轨道中使用什么进行性能测试?任何建议赞赏
答案 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的概念。关于绝对期望的表现较少,更多的是关于识别应用程序中最慢的部分并使其更快。
该主题有许多在线资源。我发现这些轨道广播是一个很好的起点: