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

5
我正在寻找用于监控/测试Rails性能的工具,但我并没有找到特别有效的工具。我已经阅读了Rails“性能”指南,但我使用的是RSpec而不是Rake:Test,所以我不太想使用rake:test框架。
那么,除了rake:test基准测试之外,人们在Rails中用什么来进行性能测试呢?欢迎提出任何建议。
2个回答

10

性能基准测试是一个因人而异的问题,不同人会有不同看法。我听到过很多次的一件事是在早期不应该过于关注性能。我不确定您的应用程序处于什么阶段,但这可能值得考虑。在开发了一个相当大的应用程序之后,我可以诚实地说我同意他们的看法。最好是在开发时使用良好的实践,并等待稍后进行性能调优。良好的实践包括对数据库列创建索引等。

对于监控现场Rails应用程序的性能,New Relic是最好的工具之一*。免费计划有些限制,因为它只提供30分钟的历史数据,但它所收集的信息是无价的。一些云托管服务商,如Heroku和Engine Yard,提供免费的铜牌计划升级,可以存储一周的数据。一旦您获取了有关应用程序的信息,就可以做出明智的决策,并确定在哪里集中您的时间。

* 我的看法


1
当您的应用需要进行性能测试时,默认的基于TestUnit的性能基准测试是一个很好的起点。然而,您不应该止步于此,应根据您的应用程序性质考虑使用各种工具。例如,使用像request-log-analyzer这样的工具分析生产日志是识别真正性能瓶颈的好方法。Bullet是另一个在开发环境中运行的优秀工具,可识别数据库调用的性能低效性。对于低级别的基准测试,Rails还为模型、控制器和视图提供了基准测试助手方法。如果您专注于调整应用程序的某个特定部分,则这将非常方便。
值得注意的是,rspec 不是测量性能的最佳工具(至今为止)。在我看来,尝试断言像 it should_take_less_than 50 这样的事情是在扭曲性能测试的概念,并试图将其强行融入 BDD 的概念中。性能更多地涉及识别应用程序中最慢的部分并使它们更快,而不是关注绝对期望。
有许多关于此主题的在线资源。我发现这些 railscasts 是一个很好的起点:

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