基于文本的查看器,用于分析结果

时间:2010-11-29 15:03:09

标签: linux profiling terminal

您是否知道用于查看应用程序分析结果的基于文本的应用程序?分析结果基本上包含C ++函数调用回溯列表以及遇到这些回溯的频率;现在我正在寻找一个控制台工具来分析原始数据(最常出现的回溯;哪个函数最常被调用,与调用跟踪无关......)。

到目前为止,我已经从原始数据创建了与callgrind兼容的文件,然后使用优秀的KCachegrind工具进行分析;但现在我也在寻找一种无需在基于文本的终端上工作的工具。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

看看callgrind_annotate

  

此命令读入配置文件数据,并打印已排序的函数列表,可选择使用源注释。

答案 1 :(得分:1)

我曾经写过这样一个观众。它专注于一行代码,显示通过该行运行的样本的百分比,以及允许转换到上级或下级代码行的蝶形视图。

它做了一个很好的演示,但我真的使用它吗?不久。

(我假设在您希望加速的间隔期间,即在用户等待期间没有采集堆栈样本。)

问题是,该计划可能在那段时间做了一些浪费。 (如果不是,你就无法加快速度。) 无论浪费多少,它都有一部分时间用于不正当理由,比如10%,50%,90%或其他什么。在此期间,它在堆栈上,因此对堆栈样本的检查将显示它。

而且,你不必看其中很多。如果某些东西需要花费50%的时间,1000个样本将显示在大约500个样本上,10个样本将在大约5个样本上显示。样本数量越多,估计百分比就越精确。如果您的目标是隔离问题以便修复它,则不需要额外的数字。

因此,一个工具可以逐行显示通过该行的堆栈样本百分比是一件非常好的事情,因为浪费的代码会出现在它上面,显示百分比。

它没有告诉你的是声明被执行的原因,这就是你知道它是否浪费的原因。查看堆栈中语句的上下文确实告诉你。

所以,即使我有观众,我最终还是自己检查了样本,只有大约10或20个。百分比越大,在找到之前我需要查看的样本数量越少。 Here's an example.