Most posts on Rails profiling推荐Ruby-Prof。要使用Ruby-Prof
,我需要为每个控制器操作编写至少一个新测试,然后手动比较结果,看看花费的时间最长,可能是优化的候选者。
如果我已经确切地知道我关注的是什么请求,这很好。如果我试图首先确定热点,似乎不太好。鉴于我已经有一个庞大的集成测试套件,涵盖了我关心的所有应用程序的功能,看起来我真正想做的是:
Ruby-prof
或其他分析工具深入查看调用堆栈。最坏情况时间将识别可能存在问题的请求参数(即,在后端触发慢速代码),而不必在编写性能测试时将其全部考虑在内。有没有理由让人们不以这种方式使用集成测试套件,而不是基本上用第二个性能测试套件复制它?我没有看到它的建议。在我编写代码以执行此类操作之前(可能在before_action
中使用ApplicationController
,是否已经有了这个工具?
答案 0 :(得分:0)
我认为自动化测试不会告诉你有关性能的任何信息。你需要真实的数据。例如,您的测试可能不会使用索引,但如果您创建没有索引的10,000条记录,则可能会发现性能问题。
我需要为每个控制器操作编写至少一个新测试
为什么要对每个控制器操作进行性能测试?
在我有限的经验中,性能测试是在部署应用程序并测试非常具体的东西之后完成的。我测试了一段很慢的代码或者我认为可能很慢的代码。
此外,如果您使用在线性能工具,则无需更改代码。该在线工具针对已部署的应用程序实例运行。