共 1,394 篇文章
共 6,621 篇文章及评论
博客分类
Blog Roll
- Association for Computing Machinery TechNews (ACM)
- Go Parallel! (Dr. Dobbs)
- HPCwire (Tabor Communications, Inc.)
- insideHPC (John West)
- Joe Duffy's Weblog (Microsoft)
- Microsoft Parallel Programming Development Center (Microsoft Germany)
- MultiCoreInfo.com
- scalability.org (Scalable Informatics)
- Software Dev Blog (Intel Germany)
- Soft Talk Blog (Intel United Kingdom)
- The Moth (Microsoft)
代码优化的第一步是判定程序热点
作者: Wu Xiaochang 吴晓昶 (Intel) (8 篇文章) 日期: 十一月 7, 2009 在 12:13 下午
我们在做性能优化的时候,第一步需要判定哪部分程序最需要做优化,一般来说程序运行最耗时的那部分,也就是程序热点(Hotspots)是我们的候选,而优化热点函数后性能提升效果也最明显。
为什么要提这个问题呢?因为最近做过一些项目,很多人一上来看到程序中这里适合用多线程,那里适合用SSE,但是有没有先考虑过这部分程序优化后性能提升的比例能有多少?一般我们在做优化之前都需要有一个基本的估计,需要优化的代码占程序总运行时间的多少,用不同的手段最多能达到怎么样的优化效果,达到这样的效果后是否满足我的既定目标?这样分析下来后才开始分配人力和时间资源。
有些人觉得,我自己心里很清楚程序哪里最耗时。但是感觉往往不是那么精确的,现在寻找热点的工具有很多, VTune,Parallel Amplifier等都可以做到。既然有工具,我们就借助工具定量地进行分析,做为我们开始的第一步。
分类: 并行计算
标签:Hotspots, 性能优化
如需了解英特尔软件产品相关的性能和优化选项,请参阅优化注意事项.
评论 (18)
| 2009年11月09日 01:05
ZWJ | 恩,软件的优化很重要. |
| 2009年11月09日 18:26
j | 顶 |
| 2009年11月09日 18:59
YIMUGANGXIAN | 很好的汉化,正在为英文界面发愁 |
| 2009年11月09日 19:41
tony.chen | 这是日记还是文章?? |
| 2009年11月09日 21:47
Qiuye |
赞同找热点,但是不赞同所有软件都优化 现在电脑还不够快吗?四核服务器的应用也不少了…… 应当根据软件的使用范围,用户的多少,数据量大小等综合因素来考虑是不是要进行优化 否则还是多投入精力保证开发进度的同时保证软件品质 现代大型软件开发都是分成好几个部分完成的,不同水平小组决定了软件的效能在各个部分肯定不同,与其后期优化不如初期投入培训,提高各个小 组水平后比软件优化效果好的多 |
| 2009年11月10日 00:53
xpoy |
热点不是单指代码中的热点,根据我自己的测试来说。 只要是系统所负责的层次,也即从自己实现的最底层到最高层,每个层次都有一个本层的热区域。 单纯用软件在代码层次进行热点寻找,一直不是合适的方式啊。最起码LS所说的根据任务管理器中的情况做判断便是无法忽略的。 |
| 2009年11月10日 05:21
atlantismace | 知道是知道,可整了半天Vtune还是玩不转。还找不到资料…… |
| 2009年11月10日 06:11
黄华仔 | 软件,是呀,要大力学会优化!我想软件工程这门课应该高校采取一种高效的措施重点抓取 |
| 2009年11月10日 16:33
zhengxi1988
| 代码优化很重要 实现同样的功能不同人写的代码效率也不一样 |
| 2009年11月10日 17:34
seuu |
vtune用过一阵,程序稍复杂一点,vtune就快要挂了。 看来intel真的只适合搞搞硬件,软件你们就别掺合了。 |
| 2009年11月10日 18:09
stephaniewang
|
如果前期很清楚程序哪里最耗时,那么在编写代码的时候,就应该考虑效率问题,而不是放到后期的优化工作来做。 另外,如Yanqing Wang (Intel)所说,如果作者再能够share一些VTune,Paral lel Amplifier方面的Tips就更加出色了。 |
| 2009年11月12日 04:29
chyy001 | 学习,有使用手册帮忙发下 |
| 2009年11月17日 23:26
cr4ck |
说vtune不好用,不会用的人,可以转行了,做软件真的不适合你们 请问一下,manual可看完了? |
| 2009年11月18日 15:52
Hogan | Support |
| 2009年11月19日 07:28
Wu Xiaochang 吴晓昶 (Intel)
| 回复xpoy:目前Intel VTune可支持你所说的系统级别的热点查询。VTune Sampling就可以在系统范围内查询热点,包括一些设备驱动程序也可能成为系统热点。 |
| 2009年11月19日 07:34
Wu Xiaochang 吴晓昶 (Intel)
| 回复stephaniewang:同意你所说的在程序设计的时候考虑性能问题,比如对一些周知的热点如向量运算,图像处理等,需要在设计之 初有意识的考虑多线程,SSE指令优化等。而用一些工具主要还是查找一些并不为人注意的热点,比如一些循环次数较多的浮点运算函数等等。 |
| 2009年11月19日 07:37
Wu Xiaochang 吴晓昶 (Intel)
| 回复seuu:确实你说的这种情况是存在的,特别是VTune做callgraph时候要进行instrumentation,这时候会消 耗大量的内存的磁盘空间。你可以试试用vtune sample的命令行,开销相对较低,然后用图形界面来查看生成的结果。 |
引用 (0)
写评论 
欲获得技术支持,请访问软件支持页面.


Yanqing Wang (Intel)
10,793