C++程序性能分析工具gperftools

北京理工大学 | 李明健

在程序性能优化时,需要测试各函数的运算时间,Linux 下可采用 Google 开源的 gperftools 工具集,它包括内存分析和 cpu 时间分析,下面介绍时间分析工具 cpu-profiler。

首先注意这个版本直接下载完是不能编译新的求解器的,打开以后,安装

随后会自动编译,库会写在 usr/local里面。

如果用 Cmake 编译,需要为该工具集写一个 FindPROFILER.cmake文件,然后将该文件放在 usr/shared/cmake-3.x/Modules 目录下,用于 find_package 查找,该文件内容如下:

下面只需要在Cmake里面加上

即可将库链接到可执行上。

在C++程序中,加入以下代码:

程序运行结束后,会生成 .prof 文件用于性能分析,有文字、图片等形式,如果需要图片显示,则要依赖 dot 包如下:

运行完程序以后查看:

显示结果如下:

图片1

每10ms一个样本,能够看出各函数用时及其占比。