2014-12-24 62 views
0

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

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: “没有节点打印”?

回答

0

看起来好像是theremightbeseveralreasons

引用最有可能的(假设你的代码是光):

如果你看到这样的消息“没有节点打印” [...] 它只是意味着该代码是如此之快,它无法分析 - 基本上,分析器甚至没有机会抽样。

和:

在默认模式下,也将是“慢”的路线没有分析数据,因为它使用几个CPU周期(你会看到消息“打印无节点“)。

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

+0

即使我包括循环哑..我仍然得到同样的输出 – Prakash

+0

是否有任何的链接关系到你的问题? 你把什么作为“虚拟循环”? – Coconop

+0

我不确定,但现在每当我运行我得到“禁用分析器,因为SIGPROF处理程序已被使用。”信息。假的lops只适用于从1到100000的循环计数 – Prakash