valgrind——Callgrind检测程序代码的运行时间和调用过程,程序分析性能。
功能扩展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
ref:
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 生成结果
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检测程序代码的运行时间和调用过程,程序分析性能。相关推荐
- python关机程序代码_python实现的重启关机程序实例
本文实例讲述了Python实现的重启关机程序的方法,对Python程序设计有一定的参考价值.具体方法如下: 实例代码如下: #!/usr/bin/python #coding=utf-8 import ...
- java程序代码的运行机制_1.4Java程序的运行机制
Java 程序的运行必须经过编写.编译和运行 3 个步骤. 编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件. 编译:是指使用 Java 编译器 ...
- 计算机内部程序代码,计算机为什么能够读懂程序代码?
01 引子 上一回,我们的主人公小A初次亮相,凭借基础的前后端理解,从技术实现的层面为我们剖析了微信扫码登录的原理和机制.可能很多人因此会好奇,小A到底是做什么的呢?为什么能够弄懂这些原理呢? 其实, ...
- 完整简单c语言程序代码,一些简单的C语言程序代码.docx
一些简单的C语言程序代码 由键盘任意输入1个4位数整数,分别输出其中的个位.十位.百位.千位./* expe 3-10 */#include #include void main(void){ int ...
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析
在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应 ...
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析(3)
Step 13. ActivityStack.startActivityLocked 这个函数定义在frameworks/base/services/java/com/android/server/ ...
- Android应用程序组件Content Provider的启动过程源代码分析(1)
通过前面的学习,我们知道在Android系统中,Content Provider可以为不同的应用程序访问相同的数据提供统一的入口.Content Provider一般是运行在独立的进 ...
- 下载的c语言程序代码怎么运行,CFree怎么运行程序 编译运行C语言程序代码的方法...
CFree是一款C语言编译软件,用户可以利用这款软件编译C/C++程序 ,如果你想要运行已经编写好的C语言代码,只需要几个简单的操作即可实现,如果你还不知道怎么运行,就赶快来看看下面的教程吧! 1.首 ...
- dev c 扫雷程序代码c语言,C语言 扫雷程序的实现
C语言 扫雷程序的实现 这个游戏可以实现根据选择坐标后所显示无雷区范围的不同分为简单 ,普通和困难 游戏程序中,实现了游戏的计时(分钟)功能,实现了扫雷游戏的最基础功能. 定义了一个9*9的棋盘,玩家 ...
最新文章
- SPPNet网络结构
- icinga的idoutils插件
- git 内网搭建_搭建GitLab(Github) 简易教程
- source tree常用功能
- 学习 Linux/C/C++ 必备资料
- 谷歌浏览器的下载位置如何设置 Chrome浏览器下载路径设置方法简述
- 深度学习入门读书笔记—全
- 智能一代云平台(六):移动开发之Ionic研究
- APACHE OFBIZ XML-RPC 反序列化漏洞 (CVE-2020-9496) 的复现与分析
- buck电路_2步避免BUCK电路中的“地弹”
- java linux 调用so文件,linux下java jni调用.so文件的方法
- java知识点3(null)
- 适用于苹果Mac的 5 个 SSH 客户端软件
- 实验四 201421440038 徐凤娇
- Anaconda自带python,在cmd中输入python提示不是内部命令或外部命令
- daytime协议的服务器和客户端程序,用socket套接字实现daytime协议的服务器和客户端程序精编版.doc...
- 赫夫曼压缩(萌新劝退)
- Crosswalk 集成到 Android Studio
- 说说Java代理模式
- ssm+vue+elementUI 基于微信小程序的游戏美术外包管理信息系统-#毕业设计
热门文章
- html页面显示用户在线统计,在HTML页面中实现点击数统计
- datagrid表头与内容不对应_斜线表头竟然如此简单,花上3分钟学习,从此告别低颜值报表...
- 指针运算(自己做个笔记)
- 下拉列表怎么判断html,判断下拉列表中的值,实现页面跳转,请问这个怎么判断?...
- javascript的date对象
- ES单字段支持的最大字符数
- 数字图像处理:腐蚀与膨胀操作
- 优达学城《DeepLearning》2-4:自编码器(无监督学习算法)
- Linux那些事儿 之 戏说USB(18)设备的生命线(一)
- OpenCV中图像Mat,二维指针和CxImage类之间的转换