性能分析
sunshineywz
这个作者很懒,什么都没留下…
展开
-
bcc trace
原创 2021-06-18 12:22:00 · 332 阅读 · 0 评论 -
[授权发表]源码分析:静态分析 C 程序函数调用关系
故事缘由工欲善其事,必先利其器。今天我们来玩转一个小工具,叫 Callgraph,它可以把 C 语言的函数调用树(或者说流程图)画出来。传统的命令行工具 Cscope,Ctags 可以结合vim 等工具提供高效快捷的跳转,但是无法清晰的展示函数内部的逻辑关系。至于图形化的IDE,如 QtCreator, Source Insight,Eclipse,Android Studio 等,却显得笨重,而且不一定支持导出调用关系图。在开源软件在线代码交叉检索一文中我们也介绍到了诸如LXR, OpenGrok原创 2020-12-24 08:37:36 · 570 阅读 · 0 评论 -
源码分析:动态分析 C 程序函数调用关系
1 缘由源码分析是程序员离不开的话题。无论是研究开源项目,还是平时做各类移植、开发,都避免不了对源码的深入解读。工欲善其事,必先利其器。之前已经介绍了如何通过Callgraph 静态分析源代码,这里介绍如何分析程序运行时的实际函数执行情况,考虑到应用部分和内核部分有比较大的差异,该篇先介绍应用部分。主要介绍三款工具,一款是 gprof,另外一款是valgrind,再一款则是能够把前两款的结...原创 2020-04-20 08:53:34 · 1421 阅读 · 0 评论 -
利用Oprofile对多核多线程进行性能分析
性能分析工具简介衡量性能收益的方法随着科学技术的不断发展,计算机系统结构朝着多核的方向发展,从而将并发编程推到了聚光灯下,但如何去衡量并行程序设计所带来的性能收益呢?不得不想起1967年Gene Amdahl所做出的杰出贡献,他提出的Amdahl定律能够计算出并行程序相对于最优串行算法在性能提升上的理论最大值。 S+(1-S)/n+H(n)其中, S 表示执行程序中串行部分的比例, n 表示处理器核的数量, H(n)表示系统开销。由于Amdahl定律本身做出了几个假设,但这些假设在现实世界中又原创 2020-10-11 23:12:18 · 342 阅读 · 0 评论 -
linux性能分析工具
原创 2020-08-01 17:59:47 · 171 阅读 · 0 评论 -
软件性能测试(连载13)
② 查看inode和目录项缓存[28]slab是Linux操作系统的一种内存分配机制,slab分配算法采用cache存储内核对象。slab缓存、从缓存中分配和释放对象然后销毁缓存的过程必须要定义一个kmem_cache对象,然后对其进行初始化这个特定的缓存包含32字节的对象。可以通过运行cat /proc/slabinfo |grep -E '^#|dentry|inode'命令来查看所有目录项和各种文件系统索引节点的缓存情况。# cat/proc/slabinfo | grep -E '^#|d原创 2020-10-11 10:25:53 · 264 阅读 · 0 评论 -
性能分析之分析决策树3与4
分析决策树图1当物理内存不够时,linux 触发oom,将进程杀掉;可以使用vmstat可以展现给定时间间隔的服务器的状态值,包括Linux的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况,用于分析磁盘的压力在哪里,在swap,还是在load文件等分析决策树图2分析决策树图3分析决策树图4在学习Linux disk I/O先聊下磁盘系统结构:如果是IDE驱动器,磁盘命名为:hda、hdb、hdc等;如果是SCSI驱动器,磁盘命名为:sda、sdb、sdc等磁盘通常被分原创 2020-10-11 10:25:18 · 887 阅读 · 0 评论