valgrind——Cachegrind分析CPU的cache命中率、丢失率,用于进行代码优化。
功能扩展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
valgrind——Cachegrind分析CPU的cache命中率、丢失率,用于进行代码优化。相关推荐
- 使用valgrind检查cache命中率
2019独角兽企业重金招聘Python工程师标准>>> Valgrind为一个debugging 和 profiling的工具包,检查内存问题只是其最知名的一个用途.今天介绍一下,v ...
- cache相关命中率的运算_计算机高速缓冲存储器(Cache)命中率的分析
第 21 卷 第 3 期 河南教育学院学报( 自然科学版) Vol. 21 No. 3 2012 年 9 月 Journal of Henan Institute of Education ( Nat ...
- CPU与Cache、内存以及硬盘之间的数据交换
今天一个同学问我一个问题,CPU与Cache.内存.以及硬盘之间是如何进行数据传输?我给同学了一个笼统的解释.当我再细想这个问题的时候,我发现这个问题并不是想的那么简单,而且想地越深会感觉细节的东西会 ...
- [存储器] 简述影响 Cache 命中率的因素
简述影响 Cache 命中率的因素 摘要: 存储器是计算机的核心部件之一.由于 CPU 和主存在速度上的存在着巨大差 异, 现代计算机都在 CPU 和主存之间设置一个高速. 小容量的缓冲存储器 cac ...
- linux查看CPU高速缓存(cache)信息
一.Linux下查看CPU Cache级数,每级大小 dmesg | grep cache 实例结果如下: 二.查看Cache的关联方式 在 /sys/devices/system/cpu/中查看相应 ...
- cache相关命中率的运算_Linux cache命中率查看
一.需求与背景 LINUX主机上的内存很为user.buffer.cache这个大的块.经常在使用free -m查看时,会发现cache占去了大头,从理论上我们也一直都知道cache里存放的是系统上访 ...
- linux cpu监控方案,Linux性能优化和监控系列(二)分析CPU性能
分析CPU性能 top命令提供了监控CPU性能的基本功能, 如果需要更加深入的挖掘CPU的性能问题, top所提供的信息不足以做到. 由于大多数人认为CPU性能是体现服务器性能的主要因素, 所以在遇到 ...
- 有关cache命中率的问题
参考资料:<计算机组成原理>(第五版) 白中英等著 有关cache命中率的问题可以说是玩文字游戏,别上当就行 一.相关概念以及公式: ①cache命中率: 在一个程序执行期间,设Nc表示c ...
- linux内核学习6:Linux的CPU高速缓存cache和页高速缓存cache,buffer
一.CPU高速缓存(cache) 参考:https://blog.csdn.net/u014470361/article/details/80060701 参考:https://blog.csdn.n ...
最新文章
- Splay ---- 区间翻转 区间最大值 区间加 P4146 序列终结者
- MFC的进程和线程,非正常终止
- mysql语句_Mysql语句
- 内核电源管理器已启动关机转换_Linux系统启动流程
- 陈桥五笔用户编号获取_用户群组分析
- 复习宝典之Maven项目管理
- 汽车之家基于 Flink + Iceberg 的湖仓一体架构实践
- CSS3属性之background
- 在线普通话转粤语发音_香港最新悬疑侦探剧福尔摩师奶,粤语知识好难
- 【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头读取
- iOS开发造轮子 | 通用占位图
- Linux关机运行的脚本,Linux关机时执行指定脚本功能实现
- vs2015 + opencv3.4.0 + qt msvc2015_64-5.7.1 显示图像
- linux之安装模式的选择
- 【crawler笔记】R语言简单动态网页爬虫(rvest包)示例
- python pygame实现简单的网游
- Word 2010如何对论文中参考文献进行标注
- CDOJ 1131 男神的礼物 区间dp
- 基于AST抽象语法树的SQL注入检测 (2) -- 每周小结(01-02~01-08) - .Little Hann
- 快手的未来,没有宿华
热门文章
- 武汉大学计算机学院放假时间,计算机学院关于2019年学生放暑假的通知
- geany怎么创建文件夹_SAP事务码太多,记不住怎么办?
- vue 模板_简化版的 vue 页面模板语法
- C语言通路寻找,用C语言解决迷宫问题设计与寻找通路问题.pdf
- 如何启用计算机上的无线网络连接,告诉大家win10无线网络连接如何打开
- 成员变量和成员函数分开存储
- Linux镜像如何添加驱动,安装virtio驱动(Linux)
- HDU - 1269迷宫城堡 -强连通tanjar算法
- 图像的矩,以及利用矩求图像的重心,方向
- 天顶角Zenith方位角Azimuth