繁体   English   中英

如何解释Google perf工具CPU探查器中的地址

[英]How to interpret addresses in Google perf tools CPU profiler

我的C ++程序消耗了大量的CPU,并且运行时更多。 我使用Google Performance Tools来分析CPU使用情况,这就是我得到的:

(pprof) top
Total: 1343 samples
    1330  99.0%  99.0%     1330  99.0% 0x0000000801dcb11c
       7   0.5%  99.6%        7   0.5% 0x0000000801dcb11e
       4   0.3%  99.9%        4   0.3% program::threadWorker
       1   0.1%  99.9%        1   0.1% 0x0000000801dcb110
       1   0.1% 100.0%        1   0.1% 0x00007fffffffffc0

但是,此处显示的5个进程中只有1个是实际的函数名称; 其余的都是地址。 我怎样才能知道这些地址的含义? (当然,我最感兴趣的是上面显示的第一个地址)

编辑:这是我运行探查器的方式:

env CPUPROFILE=prof.out ./a.out
[kill program]

pprof ./a.out prof.out

此外,我通过代码检查找到了根本原因。 但让探查器精确定位罪魁祸首而不是地址仍然是件好事。

在google-pprof中加载结果时,您是否可能未指定可执行文件?

我把它当作:

$ google-pprof executable /tmp/executable.hprof --text | less

并且可以看到函数名称就好了。 或者,当您运行google-pprof时,这些方法是在某些共享库中而不是在您的路径中?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM