C++常用性能分析工具

Posted 星火撩猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++常用性能分析工具相关的知识,希望对你有一定的参考价值。

top

1.无论你开发的是什么样的应用程序,敲个 top 命令,就能够简单直观地看到 CPU、内存等几个最关键的性能指标。top 展示出来的各项指标的含义都非常丰富。
2.一个是按“M”,看内存占用(RES/MEM),另一个是按“P”,看 CPU 占用,这两个都会从大到小自动排序,方便你找出最耗费资源的进程。另外,你也可以按组合键“xb”,然后用“<>”手动选择排序的列,这样查看起来更自由。

pstack

pstack 可以打印出进程的调用栈信息,有点像是给正在运行的进程拍了个快照,你能看到某个时刻的进程里调用的函数和关系,对进程的运行有个初步的印象。

strace

1.strace 可以显示出进程的正在运行的系统调用,实时查看进程与系统内核交换了哪些信息。
2.把 pstack 和 strace 结合起来,你大概就可以知道,进程在用户空间和内核空间都干了些什么。当进程的 CPU 利用率过高或者过低的时候,我们有很大概率能直接发现瓶颈所在。

perf

1.perf 可以说是 pstack 和 strace 的“高级版”,它按照固定的频率去“采样”,相当于连续执行多次的 pstack,然后再统计函数的调用次数,算出百分比。只要采样的频率足够大,把这些“瞬时截面”组合在一起,就可以得到进程运行时的可信数据,比较全面地描述出

以上是关于C++常用性能分析工具的主要内容,如果未能解决你的问题,请参考以下文章

C++常用性能分析工具

tecplot云图怎么显示截面多相流颗粒粒径分布或者相含率

Windows和Linux下排查C++软件异常的常用调试器与内存检测工具详细介绍

视频教程大纲,在这里你可以学到...

厘清指标维度,截面数据时间序列数据以及面板数据

面板数据截面数据时间序列数据