软件
- Visual Studio 2008
- VTune Amplifier XE 2011
tachyon_vtune_amp_xe
位于C:\Program Files (x86)\Intel\VTune Amplifier XE 2011\samples\en\tachyon_vtune_amp_xe.zip
HotSpots(热点)的使用
- 设置find_hotspots为启动项目
1. 项目属性要求
C/C++ -> General 要求如下
Linker -> Debugging -> General Debug Info 必须为Yes
这样的话,在Debug模式和Release都可以进行热点分析
2. 点击New Analysis
3. 创建热点
4. Start 程序运行结束后
I. Summary
Summary主要分析的数据有:”Elapsed Time(经过的总时间)“、”Top Hotspots(高热点部分)“、“CPU Usage Histogram(CPU使用直方图)“和”Collection and Platform Info(收集信息和平台信息)
Elapsed Time信息,主要有总线程数量、CPU时间(CPU运行程序所花费的总时间)
Top Hotspots信息,会列举VTune分析的程序里的活跃度最高(最耗时)的部分,例如:自旋锁、函数等。
CPU Usage Histogram信息,显示CPU使用直方图。
Collection and Platform Info信息,包含了应用程序命令行、操作系统、CPU等信息。
Bottom-Up
主要用来关注哪个对CPU时间占用最多
- 此处
initialize_2D_buffer
这个函数占用的CPU时间最多 - 我们可以双击该条目, 进入到源代码以及可以看到汇编码
- 可以看到
mem_array
这里的操作消耗的时间最多,我们可以双击该行代码进入修改
- 可以发现此处代码缺陷是,数组的填充不是按内存连续填充的
- 进行如下修改, 使内存连续填充
反而慢了一点。。按道理应该是会变快的
使用compare
- 通过比较,可以清楚改后,CPU的优化效果。