第二章 性能瓶颈的分析与定位(17)

2022-08-02  本文已影响0人  耕田者

再提采样型剖析的局限性

       正如我们在本章开头所述(或许你早已忘记或没有仔细阅读),由于采样数据的统计本质,采样型剖析具有某些局限型。现在让我们用刚才的实例描述一番,这要比纯理论讨论更容易让人理解。让我们看看上张截图CodeXL剖析结果中的Call Graph页签:

       1. 如果单凭Call Graph页签中的内容,你也许会被误导qMain()函数只调用了wasteCpuCycles()函数,但是我们很确定事实并非如此。我们的解释是:采样过程中收集的调用栈信息无法看到qMain()除了调用wasteCpuCycles()外还调用了哪些函数。

       2. 我们也无法知道wasteCpuCycles()函数以怎样的频次被调用。是仅被调用了1次,总共花了21.34%的时间,还是被调用了10次,每次花了2.134%的时间呢?

      正如我们之前提到的,如果需要非常精确的信息,只能求助于探测型的剖析方法。

上一篇 下一篇

猜你喜欢

热点阅读