Ubuntu C++ 程序性能优化
时间优化
系统计时工具
gpof
用gprof对程序进行分析主要分以下三个步骤:
用编译器对程序进行编译,加上
-pg
参数;运行编译后的程序;
用gprof命令查看程序的运行时信息。
安装
gprof在发行的Linux系统中通常都有内置。
使用
在编译程序时使用-gp
命令,对于以CMakelist组织的程序而言,可以为cmake
添加如下参数:
1 | cmake -DCMAKE_CXX_FLAGS=-pg -DCMAKE_EXE_LINKER_FLAGS=-pg -DCMAKE_SHARED_LINKER_FLAGS=-pg <SOURCE_DIR> |
对于gcc
而言,可以使用如下形式:
1 | gcc example.c -pg -o example |
完成编译后,正常执行程序。在程序运行结束后,工作目录下会生成名为gmou.out
的文件,该文件记录了程序的运行信息。
解码该信息需要安装gprof2dot
,安装命令如下:
1 | pip install gprof2dot |
然后可以一下命令中的任一命令查看结果:
1 | gprof ./example gmon.out|less -S 可以直接查看文字 |
更多内容可以参考链接。
valgrid + callgrid
程序内计时
C++ 11
提供了新的程序内计时特性,精度可以到微秒,示例如下:
1 |
|