剖析C代码

我正在尝试为我使用gperftools的代码生成分析(逐行源代码)。

gcc a.c -lprofiler -Wl,--no-as-needed -lprofiler -Wl,--as-needed

CPUPROFILE=out.ptof ./a.out 

pprof  ./a.out out.ptof --inuse_objects --lines --heapcheck  --edgefraction=1e-10 --nodefraction=1e-10 --gv
Using local file ./a.out.
Using local file out.ptof.
No nodes to print

为什么pprof指出“没有要打印的节点”?


看起来可能有几个原因。

引用最有可能的(假设你的代码很轻):

如果您看到类似“没有要打印的节点”的消息,这只是意味着代码太快而无法进行分析 - 基本上,分析器甚至没有机会进行抽样。

和:

在默认模式下,“慢”路由将不会有分析数据,因为它使用的CPU周期很少(您会看到消息“No nodes to print”)。

所以你可能需要人为地减慢你的程序......

链接地址: http://www.djcxy.com/p/87953.html

上一篇: profiling C code

下一篇: Can't analyse the output (the profile file) of gperftools profiler