代码分析器如何不正确

Posted

技术标签:

【中文标题】代码分析器如何不正确【英文标题】:How code profilers can be incorrect 【发布时间】:2013-04-24 05:56:50 【问题描述】:

我已经阅读并体验过性能分析器有时是不正确的。有时它们会为某些函数生成不正确的运行时间,并显示实际上并不存在的调用图。我想知道这些错误通常是如何发生的,这些错误的主要原因是什么?

【问题讨论】:

【参考方案1】:

这个问题很广泛,因为很多东西都被称为分析器,测量不同的东西,从内存分配到管道刷新。

部分问题是概念性的。例如,您(和其他人)说“某些功能的运行时间不正确”。术语“运行时”需要一个定义。它是指“所有调用的总运行时间”还是“每次调用的平均运行时间”? 它是否包括被调用的函数? 它是指 CPU 时间,还是挂钟经过的时间? 这只是模糊思维的一个例子。

许多人都有一个更深层次的概念问题。他们认为他们正在寻找“慢功能”。我不知道他们从哪里得到这个想法,可能是从班主任那里得到的。加速机会并不局限于特定功能,如果以速度为目标,您也不能忽视那些不这样做的机会。

此外,他们认为只要进行测量,这些测量的准确性就很重要。 它无助于发现速度错误。

恕我直言,与其试图诊断分析器的缺点,不如 1) 忘掉所有的 myths around the subject,2) 强调积极的一面和 learn about what does work。

【讨论】:

以上是关于代码分析器如何不正确的主要内容,如果未能解决你的问题,请参考以下文章

WinBUGS Weibull 网络元分析

静态分析工具汇总

如何以对静态代码分析友好的方式使用#define 守卫?

如何编写一个简单的代码分析器?

vue源码构建代码分析

poj1185炮兵阵地 正确代码及错误代码分析