【发布时间】:2011-10-03 21:27:36
【问题描述】:
我试图了解在使用不同选项运行时程序的性能如何变化——我想解释一下 1.8 的因数。我一直在使用 [valgrind] 的 callgrind 工具进行分析,并使用 kcachegrind 来可视化结果。
但我真的很想看看差异。我找到了cg_diff 程序,但它不适用于 callgrind 配置文件,只能用于 cachegrind 配置文件,这对我来说太贵了,无法收集。
有人知道用于可视化两个配置文件之间差异的工具吗?
【问题讨论】:
-
天哪,诺曼,我们以前来过这里 :) 让我们看看,1/1.8 = 56%,所以如果你每个取大约 10 个堆栈样本,大约 44%+/-慢的样本,你会看到一或几行代码,你在快的样本上看不到这么多。如果它不起作用,请告诉我。
-
具体来说,显示解释的样本数应该是二项分布,均值 = 10*.44 = 4.4,标准差 = sqrt(10 * .44 * .56) = 1.6,很可能在 3 到 6 个样本之间:-)
-
我在 Windows 上,不是在 linux 上,但如果程序是 C 或 C++ 的,请将文件压缩到我这里,我很乐意演示。干杯。
-
@Mike:我被困在贫民区:Objective Caml。我会为堆栈采样分析器而杀。
-
哇,你真的是。即便如此,它是got a debugger 可以显示堆栈跟踪。像大多数半生不熟的系统一样,它们不会告诉您如何中断它。不过,您也许可以通过 Ctrl-C 或其他方式。 pstack 或 lsstack 也可能有效。我知道这有点偏离你原来的问题,但那是我做的直线。获取他们的堆栈样本。祝你好运。
标签: linux profiling valgrind kcachegrind callgrind