功能扩展1 callgrind
1.1 指令范式
valgrind --tool=callgrind --separate-threads=yes ./run
是指是否按线程来分别统计,如果不加,会将所有线程的结果打到一个文件里;否则会按线程分别打印到不同文件里。
1.2 install
sudo apt-get update -y
sudo apt-get install -y kcachegrind
1.3 分析工具Kcachegrind
Callgrind通过Valgrind框架使用运行时检测来进行缓存模拟和调用图生成。通过这种方式,甚至共享库和动态打开的插件也可以被分析。Callgrind生成的数据文件可以加载到KCachegrind中,用于浏览性能结果。但是包中还有一个命令行工具,可以从数据文件中获取ASCII报告,而不需要使用KCachegrind。
KCacheGrind windows 系統下的代替方案
- WinCacheGrind:可分析由xdebug產出的cachegrind.xxx檔,簡易版的kcachegrind。
- windows port of kcachegrind
由原linux的kcachegrind,重新編譯在windows上可執行版,功能與linux kcachegrind相同。 - Webgrind:網頁版的callgrind,搭配xdebug可做即時線上做php script profile。
- 对应的win版本的工具,不影响数据结果的分析
- 官网Kcachegrind http://ceefour.github.io/wincachegrind/
这里介绍一个图形化性能分析工具Kcachegrind
1.4 生成结果

执行显示命令:
kcachegrind callgrind.out.493485
callgrind.out.76292-01
通过1.2 分析工具对1.3 生成结果进行分析。
1.5 更进一步的使用与分析可以参考文章
1.6 参考资料
https://www.cnblogs.com/ZY-Dream/p/14357462.html
https://kcachegrind.github.io/html/Home.html
本文介绍了如何使用Valgrind工具的Callgrind模块进行指令统计,并通过Kcachegrind进行性能分析。Callgrind可以按线程单独统计,并生成缓存模拟和调用图。安装Kcachegrind后,可以加载Callgrind生成的数据文件进行可视化浏览。此外,还提到了Windows环境下WinCacheGrind作为替代工具,以及Webgrind这种在线PHP脚本性能分析工具。
1万+

被折叠的 条评论
为什么被折叠?



