关于这个话题,我发现了几个相互矛盾的答案。这篇博文需要 libuwind,但这在 Mac OS X 上不起作用。我包含#include <google/profiler.h>
在我的代码中,但是我的编译器 (g++) 找不到该库。我gperftools
通过自制软件安装。此外,我发现这个stackoverflow 问题显示了这一点:
然后我运行 pprof 来生成输出:
[hidden ~]$ pprof --text ./a.out cpu.profile Using local file ./a.out. Using local file cpu.profile. Removing __sigtramp from all stack traces. Total: 282 samples 107 37.9% 37.9% 107 37.9% 0x000000010d72229e 16 5.7% 43.6% 16 5.7% 0x000000010d721a5f 12 4.3% 47.9% 12 4.3% 0x000000010d721de8 ...
运行该命令(没有任何先前的步骤)让我得到这个:
[hidden]$ pprof --text ./a.out cpu.profile
Using remote profile at ./a.out.
Failed to get the number of symbols from http://cpu.profile/pprof/symbol
为什么它试图访问我机器上的互联网站点和他/她的本地文件?
尝试使用 g++ 将 lib profiler 链接为空运行让我:
[hidden]$ g++ -l libprofiler
ld: library not found for -llibprofiler
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我查看了手册页、帮助选项文本、官方在线指南、博客文章和许多其他来源。
我现在很困惑。有人可以帮我使用 gperftools 吗?
我与@osgx 对话的结果就是这个脚本。我试着把它清理一下。它也可能包含很多不必要的选项。