实例:使用VTune(TM) Performance Analyzer 优化bzip2 v1.0.3

intel_zhenyuwang 2008-07-11 03:19:20
(这是我以前写的一个例子,原贴)

我们经常使用bzip2来压缩文件.如何使它跟有效呢?

使用VTune(TM) Performance Analyzer去发现热点函数,主要瓶颈在 blocksort.c 的 mainSort(), 我们可以做如下修改:
a) Use memory runtime library instead of C Code

/*-- set up the 2-byte frequency table --*/

// for (i = 65536; i >= 0; i--) ftab[i] = 0;

/* pwang-enhance1: use memset() instead of zero-assignment in the loop */

memset(&ftab[0], 0, 26214); // length is 4*65537



b) Unroll each iteration in huge loop to make more efficiency.

/*-- Complete the initial radix sort --*/

//for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];

/* pwang-enhance2 - unroll the loop, reduce the iteration */

for (i = 1; i <= 65536; i+=4) {

ftab[i] += ftab[i-1];

ftab[i+1] += ftab[i];

ftab[i+2] += ftab[i+1];

ftab[i+3] += ftab[i+2];

}

而且我们可以声明mainSimpleSort()作为"inline"函数,重新编译。压缩一个10MB的文档,从7.36s减少到5.9s!!

原帖含修改过的blocksort.c,也许你能做得更好。另外,解压缩"bzip2 -d"的优化工作还没做,不知你有没有兴趣用VTune来优化?
...全文
316 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjkl0986 2010-04-21
  • 打赏
  • 举报
回复
请问,如何使用VTune的优化报告这一功能,不知道哪里出现报告
intel_iclifort 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hjkl0986 的回复:]

请问,如何使用VTune的优化报告这一功能,不知道哪里出现报告
[/Quote]

您说的是不是VTune的 Tunning Assistant 这个功能啊

它会将与常见的性能问题相关的Event集中起来进行采样工作, 然后给出相应的说明. 注意, 可能程序需要反复执行几次才能完成.


intel_zhenyuwang 2008-10-07
  • 打赏
  • 举报
回复
问题应该已解决.
Jim_hb 2008-10-06
  • 打赏
  • 举报
回复
请问使用VTuen如何定位到源代码??
我只能定位到汇编代码。

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧