为何Conan最新版gperftools无profiler.h?如何通过Conan做应用性能分析?
新版gperftools(2.11+)性能分析指南(Conan安装)
从gperftools 2.11版本开始,原gperftools/profiler.h头文件已被移除,改用以下方式完成性能分析:
1. 头文件引用
直接引用顶层的profiler.h即可,无需嵌套路径:
#include <profiler.h>
2. 配置Conan依赖
确保你的项目正确引入gperftools依赖,以2.16版本为例:
- conanfile.txt 配置:
[requires] gperftools/2.16 [generators] cmake_find_package - conanfile.py 配置:
from conan import ConanFile class YourAppConan(ConanFile): requires = "gperftools/2.16" generators = "cmake_find_package"
3. 编译链接设置
在CMakeLists.txt中,找到gperftools库并链接profiler组件:
find_package(gperftools REQUIRED) target_link_libraries(your_target_name PRIVATE gperftools::profiler)
4. 启动性能分析
有两种方式可以启用CPU profiling:
代码内手动控制
在业务代码的关键节点调用Profiler API:
#include <profiler.h> int main() { ProfilerStart("app_profile.prof"); // 指定输出文件 // 你的业务逻辑代码 run_application(); ProfilerStop(); return 0; }
环境变量启动(无需修改代码)
直接通过环境变量指定输出文件,运行编译后的程序:
CPUPROFILE=app_profile.prof ./your_compiled_binary
5. 分析Profile结果
使用gperftools自带的pprof工具分析生成的.prof文件:
# 生成文本格式的性能报告 pprof --text ./your_compiled_binary app_profile.prof # 生成SVG格式的调用图(需提前安装graphviz) pprof --svg ./your_compiled_binary app_profile.prof > profile.svg
如果是通过Conan安装的gperftools,pprof工具会位于Conan的包bin目录下,你可以将该目录添加到系统PATH,或者通过conan run命令调用。
内容的提问来源于stack exchange,提问作者Leonid
相关产品推荐
相关产品推荐

