【问题标题】:Ruby Profiling results show inconsistent resultsRuby Profiling 结果显示不一致的结果
【发布时间】:2015-04-27 11:19:16
【问题描述】:

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

大部分代码流都经过适当的分析

但是一些代码流给出了我非常奇怪的配置文件结果,我不知道如何解释。

例如:我有一个父方法,结果如下

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,两个分析器都给了我类似的结果。

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

对于这些调用来说,一切似乎都非常随机。有没有人遇到过这样的问题?

我错过了什么吗?

【问题讨论】:

标签: ruby profiling


【解决方案1】:

我过去曾遇到过此类问题,并且已将此类问题追溯到诸如由于依赖 gem 中的动态代码注入或乍一看在执行中微不足道的子方法而“出现”的子方法之类的问题由于当前的系统状况(内存压力大、磁盘速度慢等),需要更长的时间。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多