了解 Redis 列表基本原理
2)Hotpots Hotspots分析可以了解应用程序流程,并确定获得大量执行时间的代码段(热点),这是用户进行算法分析的起点。热点分析有两种基于采样的收集模式:用户模式采样会产生更高的开销,但不需要采样驱动程序即可进行收集;基于硬件事件的采样,可以提供最小的收集开销,但需要安装采样驱动程序或Perf。在用户模式采样中,收集器不会收集系统范围内的性能数据,而是只关注您的应用程序。硬件基于事件的采样模式是基于硬件基于事件的采样收集,分析当前系统上运行的所有进程,提供关于整个系统性能的CPU时间数据。
在进行Hotspots分析后,可以查看Bottom-up视图下的热点函数,双击函数即可对源码以及汇编代码进行分析。
(1)Performance Snapshot
该功能模块能够对应用程序进行总体的分析(图4),包括IPC、GFLOPS、CPU频率、CPU核心利用率、微架构使用率、内存使用率等指标等,但只能给出一个总体的数值,要分析各个函数对CPU的占用时间等详细数值要进行更加详细的分析,一般进行性能分析时,首先进行这个模块的分析。 火焰图使用SVG的图像格式进行存储,方便用户与图像进行交互。火焰图中的函数方块的长度越长,那么表示执行该函数的CPU时间越长。火焰图的底部为父函数,上方为它的子函数。通过火焰图的形式,函数调用的关系以及CPU占用比都更加直观地呈现出来。 3.3 VTune VTune是 Intel 公司开发的的一个功能十分强大的应用程序性能分析软件,包括寻找软件性能热点、线程性能检测、CPU利用率、IO负载监测等功能,还提供丰富的UI界面供用户操作,简单易上手。
VTune提供了本地连接、远程连接、安卓设备连接等多种方式来对不同的应用程序进行测试,还提供Performance Snapshot、Hotpots、Microarchitecture Exploration、Threading和IO等不同方面的性能分析模块(图3)。 中第一列表示函数的子函数执行占用的CPU比例,第二列表示函数执行占用的CPU比例,第三列表示函数所在的DSO,第四列表示函数名。通过使用perf工具,可以方便地得到定位程序的热点代码,以指导程序性能瓶颈的优化。
但是这种结果查看函数之间的调用关系十分不方便,可以使用一些脚本生成火焰图(FlameGraph)来直观地表示函数调用关系。 (编辑:通化站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |