5.13.1 基于Intel Vtune软件性能分析与优化

更新于 2026年10月10日 版权声明
5.13.1 基于Intel Vtune软件性能分析与优化

采样分析。VTune性能分析器中的采样功能可以帮助开发者分辨程序中最消耗时间的函数和模块,并给出操作系统和应用程序的详细视图。它能够寻找程序中的热点区域——最耗时间的模块、函数、代码行和汇编指令,提供进程、线程、模块、函数以及代码等各种视图,如图5.80所示。

图示

图5.80 对程序进行热点分析图

沿着调用序列重新寻找热点,并对其中的一些热点做了并行化处理,测试表明通过对这些热点的并行化,程序的性能得到了改善。

采样分为基于时间的采样与基于事件的采样。本系统程序基于事件采样的线程执行状况图如图5.81所示。图中每条线程CPI(退出指令平均执行时钟)、Clocktick(时钟报时信号)和Instructions Retired(退出指令)的值,为优化软件提供参考。

图示

图5.81 线程执行状况图

系统Counter Monitor分析。Counter Monitor能观察指定时段内程序效率与Performance Counter的关联。通过图5.82,我们主要查看来自系统级的瓶颈,就是影响我们程序性能的外部硬件环境;通过检测器图标下面的数据我们可以查看来自CPU、硬盘、网络,还有内存方面的一些瓶颈,并根据占处理器时间找热点。Counter Monitor有助于我们理解计算机子系统和程序之间的因果关系。通过该特性,我们可以了解是内存减少还是文件输入输出操作导致运行速度下降。

图示

图5.82 系统主界面Counter Monitor图(https://www.daowen.com)

系统Call graph分析。如图5.83所示,该分析过程提供了一个虚拟的程序的执行图,第四行中较粗的线代表关键路径,小方块的灰度不同代表不同的权值,我们主要根据关键路径来确定运行的最大时间,依靠关键路径,定位源代码,查找瓶颈。

图示

图5.83 系统Call graph图

系统Thread profiler并行分析。图5.84为并发级别视图,Intel线程档案器可通过监控程序的运行来检测线程性能的相关问题,包括线程过载和同步冲突,能够帮助查找负载平衡、同步开销等线程性能问题。

图示

图5.84 并发级别视图

如图5.85,每个线程消耗处理器的时间可以看出:在调整了程序的性能任务,将工作在线程之间搬移后,本程序的并行化、任务分配和CPU利用率都得到了优化。

图示

图5.85 时间轴视图

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)