再提采样型剖析的局限性
正如我们在本章开头所述(或许你早已忘记或没有仔细阅读),由于采样数据的统计本质,采样型剖析具有某些局限型。现在让我们用刚才的实例描述一番,这要比纯理论讨论更容易让人理解。让我们看看上张截图CodeXL剖析结果中的Call Graph页签:
1. 如果单凭Call Graph页签中的内容,你也许会被误导qMain()函数只调用了wasteCpuCycles()函数,但是我们很确定事实并非如此。我们的解释是:采样过程中收集的调用栈信息无法看到qMain()除了调用wasteCpuCycles()外还调用了哪些函数。
2. 我们也无法知道wasteCpuCycles()函数以怎样的频次被调用。是仅被调用了1次,总共花了21.34%的时间,还是被调用了10次,每次花了2.134%的时间呢?
正如我们之前提到的,如果需要非常精确的信息,只能求助于探测型的剖析方法。
网友评论