Ruby Profiling结果显示结果不一致

时间:2015-04-27 11:19:17

标签: ruby profiling

我正在分析我的Rails应用程序以进行性能优化

大多数代码流都是适当分析的

但是一些代码流程给出了我非常奇怪的个人资料结果,而且我不知道如何解释它。

对于Eg:我有一个带有以下结果的父方法

Total time: 4.5 sec
Wait time: 0.0 sec
Self time: 0.0 sec
Child time: 4.5 sec

但任何子方法所用的时间不超过0.0秒

许多方法都会出现这种情况。我尝试过使用ruby-prof和newrelic,两个分析器都给我类似的结果。

我的一些子方法也列在父方法下,实际上从不调用它们。

这些电话似乎都是随机的。有没有人遇到过这样的问题?

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我过去曾遇到过这类问题,并将这些问题追溯到儿童方法和出现的问题。由于当前系统条件(高内存压力,慢速磁盘等)导致执行时间较长的依赖宝石或子方法中的动态代码注入。

我在寻找原因方面的建议是开始评论代码并检查您的分析结果。在分析中考虑删除整个代码分支的简单行为,然后迭代地重新添加碎片,直到您确定了神秘方法突然出现的点,这对识别正在发生的事情具有指导意义。