【发布时间】:2016-07-18 22:28:32
【问题描述】:
Most posts on Rails profiling 推荐Ruby-Prof。要使用Ruby-Prof,我需要为每个控制器操作编写至少一个新测试,然后手动比较结果以查看耗时最长的以及可能是优化的候选对象。
如果我已经确切地知道我正在关注什么请求,那就太好了。如果我首先尝试识别热点,这似乎不太好。鉴于我已经拥有一个庞大的集成测试套件,涵盖了我关心的所有应用程序功能,看来我真正想做的是:
- 运行整个测试套件并记录每个控制器操作所花费的时间。 (或模型方法,或我想要的任何粒度级别。)
- 打印两个列表,每个控制器操作中的最坏情况和平均情况时间。
- 对每个列表进行排序并开始调查运行时间最长的控制器操作,现在使用
Ruby-prof或其他分析工具深入调用堆栈。最坏情况下的时间将识别可能有问题的请求参数(即,在后端触发慢代码),而我在编写性能测试时无需考虑所有这些。
是否有某些原因人们不以这种方式使用集成测试套件,而不是使用第二个性能测试套件来复制它?我没有看到它建议。在我编写代码来做这样的事情之前(大概在ApplicationController 中有一个before_action,是否已经有一个工具可以做到这一点?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 profiling ruby-prof