功能扩展1 Cachegrind
1.1 指令范式
单行最重要指令:
valgrind --tool= [default: memcheck]
sun@sun:~/workspace/deptrum$ valgrind --tool=
//table 查看工具
cachegrind callgrind drd exp-bbv exp-dhat exp-sgcheck
getoff helgrind lackey massif memcheck none
Run the Valgrind tool called toolname,
e.g. memcheck, cachegrind, callgrind, helgrind, drd, massif, dhat, lackey, none, exp-bbv, etc.
valgrind --tool=cachegrind ./build/bin/aurora300_runner ./data/d_aurora300/speckle.bmp --ir ./data/d_aurora300/ir.bmp --config ./data/d_aurora300/config/
1.2 cachegrind 指令,缓存和分支预测分析器。它可以帮助您使程序运行得更快。
1.2.1 指令范式
valgrind --tool=cachegrind ./build/bin/aurora300_runner ./data/d_aurora300/speckle.bmp
1.2.2 测试结果
生成的文件名: cachegrind.out.73262,就是callgrind生成的文件。
1.2.3 kcachegrind工具安装
首先安装运行分析函数时间的工具 kcachegrind
下载安装包 http://kcachegrind.sourceforge.net/,下载最新的 tar.gz 文件
解压文件,进入解压之后的目录,从 README 中可以找到安装方式,这里记录一下
cmake .
make -j8
sudo make install
中间过程中遇到的一些,cmake的时候出问题,找不到一个依赖包
CMake Error at /usr/local/share/cmake-3.12/Modules/FindKDE4.cmake:100 (message):
ERROR: cmake/modules/FindKDE4Internal.cmake not found in
/home/zhangying/.kde/share/apps;/usr/share/kde4/apps
Call Stack (most recent call first):
CMakeLists.txt:5 (find_package)
sudo apt-get install kdelibs5-dev
在 make install 的时候,如果没有加 sudo 也会报错
Install configuration: "RelWithDebInfo"
CMake Error at doc/cmake_install.cmake:49 (file):
file cannot create directory: /usr/local/share/doc/HTML/en/kcachegrind.
Maybe need administrative privileges.
Call Stack (most recent call first):
cmake_install.cmake:42 (include)
Makefile:85: recipe for target 'install' failed
make: *** [install] Error 1
这个时候加上 sudo 就可以了,此时分析工具安装完成了,该分析工具是为了在 valgrind 跑完之后,会生成一个结果文件,该工具可以分析这个结果
使用 valgrind 跑程序
valgrind --tool=callgrind --separate-threads=yes ./runner