1.什么是VTune?
Vtune可视化性能分析器(Intel VTune Performance Analyzer)是一个用于分析和优化程序性能的工具,作为Intel为众多开发者们提供的专门针对寻找软硬件性能瓶颈的一款分析工具,它能帮助你确定程序的热点(hotspot),帮助你找到导致性能不理想的原因,从而让你能据此对程序进行优化。
- 概括起来Vtune性能分析器能通过以下的手段帮助你发现和定位程序中的性能问题:
- 从当前系统中收集性能数据
- 从系统到源代码不同的层次上,以不同的互动形式来组织和展示数据
- 发现潜在的性能问题,并提出改进措施。
2.VTune主要包括三个小工具:
(1) Performance Analyzer:性能分析,找到软件性能比较热的部分,一般也就是性能瓶颈的关键点。
(2) Intel Threading Checker:用于查找线程错误, 能够检测资源竞争、线程死锁等问题
(3) Intel Threading Profiler:线程性能检测工具,多线程可能存在负载比平衡, 同步开销过大等线程相关的性能问题,该工具可以帮你发现每一个线程每一时刻的状态。
3.工作模式:
本地模式是被分析的程序和VTune同时工作在同一台机器上
远程模式是指程序在一台机器上,VTune装在另一台机器上
4.Vtune性能分析器显示的性能数据的几种形式:
(1) 采样:
以图形化方式显示程序执行的指令地址直方图,帮助确定代码中的性能瓶颈。采样数据采集完毕之后,可以按进程、线程、模块、函数或指令地址进行查看。采样只需极低的性能开销,并且不需要修改代码。通过采样图,可以方便地了解到哪些代码是处于活动密集区,如图中是按模块划分,最长的紫红色区域所对应的代码模块,代表的就是HotSpot,在开发中需要着重优化。
(2) 调用图:
调用图包含以下信息:
- 函数被调用次数及调用它的函数
- 在每个函数或方法上耗费的时间
- 函数耗费在阻塞或等待上的时间
- 经过调用层次结构的关键路径
- 耗费时间占总时间n%以上的函数,其中n 由用户指定。
(3) 计数器监视器:
计数器监视器"可实时查看应用程序的性能。可监视200个以上可用操作系统计数器中的任何一个。用户可创建自定义的性能监视器,来监视软、硬件性能。计数信息包括:重定向网络错误率,内存占用量,上下文切换率,CPU 时间等。
3.如何使用Vtune(TM)性能分析器优化应用程序?
使用Vtune(TM)性能分析器优化应用程序,首先必须要建立一个工程(project)。所谓工程就是一个包含有与应用程序相关的所有优化信息。在一个工程内,用户可以创建一个活动(Activity)。所谓的活动包含有用户的应用程序的信息和一个或多个数据收集器(data collectors)的配置信息。一旦你运行一个活动,Vtune性能分析器将启动应用程序和数据收集器,开始自动收集相关数据信息。
4.支持的平台以及安装注意事项:
平台:windows os, mac os, linux os
注意事项:在安装较新版本之前,无需卸载VTune Amplifier的先前版本或更新。但是,如果在安装较新版本之前未删除较旧的更新,则属于同一主要版本的所有产品组件将替换为每个主要版本更新的最新版本,也就是说新版本将安装在旧版本旁边,复制通用文件,文档,示例和产品组件。
5.下载Only Intel® VTune™ Amplifier
https://software.intel.com/en-us/vtune/choose-download
6.使用GUI界面安装
sudo apt-get install libgtk-3-0 libasound2 libxss1 libnss3
tar -xzf vtune_amplifier_2019_update4.tar.gz
cd vtune_amplifier_2019_update4/
sudo ./install_GUI.sh
注意:使用root权限安装时,默认路径为:/opt/intel/vtune_amplifier_version 使用用户权限安装时,默认路径为: /home/<user>/vtune_amplifier_version , 上面使用GUI界面来安装VTune
一路点击next
执行到上图界面的时候,点击Custonize...可以查看和自定义安装路径
然后一路install就可以,进度条为百分百的时候,点击Finish。
7.验证安装的自检脚本
该脚本在具有可靠热点的样本上运行多个代表性分析类型。脚本完成后,它会生成一个日志文件,并对检查的成功或失败进行诊断。推出的分析类型包括:
-
软件采样和跟踪收集(用户模式采样模式或线程中的热点)
-
基于核心事件的采样采集(基于硬件事件的采样模式中的热点,包括和不包含堆栈)
-
微体系结构探索分析
-
使用非核心事件进行内存访问分析
cd /opt/intel/vtune_amplifier_2019.4.0.597835/bin64
sudo ./amplxe-self-checker.sh
8.配置VTune Amplifier环境
终端执行下面命令:
source /opt/intel/vtune_profiler/env/vars.sh
也可以在用户环境变量中配置:
sudo vim ~/.bashrc #当前用户
添加环境变量:
source /opt/intel/vtune_profiler/env/vars.sh
安装完毕!!