2011-01-27 41 views
5

我正在寻找工具来监视/测试轨道中的性能,而且我没有找到任何特别有效的运气。我已经阅读了rails的性能指南,但是我使用RSpec而不是Rake:Test,所以我并不特别热衷于使用rake:test框架。性能基准测试的Rails宝石/工具?

那么,除了rake:测试基准测试程序之外,人们在rails中如何使用性能测试呢?任何建议赞赏

回答

10

性能基准测试是这些事情之一,你会得到不同的意见取决于你问谁。我一遍又一遍地听到的一件事是,你不应该在早期对性能产生影响。我不确定你的应用程序在哪里,但这可能是需要考虑的事情。在开发了一个相当大的应用程序后,我可以诚实地说我同意他们。在开发时使用良好的实践并稍后再进行性能调整会更好。最佳实践包括索引数据库列等内容。

对于活轨应用的性能监测,New Relic是最好的工具之一*。免费计划有点有限,因为它只提供30分钟的历史数据,但它收集的信息是无价的。 Heroku和Engine Yard等云主机提供免费的青铜计划升级,存储一周的数据。一旦你掌握了关于你的应用的信息,你就可以做出明智的决定,把握你的时间。

*我的意见

+0

*点头*可靠的建议,欢呼声。 – PlankTon 2011-01-27 14:18:52

1

您的应用程序需要一定的性能测试中,默认TestUnit基于性能基准测试是一个很好的开始。但是,您不应该停留在此处,并应根据应用程序的性质考虑使用各种工具。

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

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

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