Vtune HotSpots(热点)使用

版权声明:本文为博主原创文章,未经博主 请随意转载!! https://blog.csdn.net/VonSdite/article/details/81983080

软件

  • 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的优化效果。

猜你喜欢

转载自blog.csdn.net/VonSdite/article/details/81983080
今日推荐