深入理解计算机系统之五--优化程序性能

一、介绍

1、写程序的最主要目标就是使它在所有可能的情况下都正确工作。在很多情况下,让程序运行得快也是一个重要的考虑因素,比如程序实时处理视频帧或者网络包。

2、编写高效程序需要做到以下几点:

第一、必须选择一组适当的算法和数据结构。
第二、必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。对于这一点,需要理解优化编译器的能力和局限性是很重要的。

第三、针对处理运算量特别大的计算,将任务分解,通过多核和多处理器的组合并行计算。

注:编程时必须在实现和维护程序的简单性与它的运行速度之间做权衡。

1、优化编译器的能力和局限性

//
void twiddle1(long *xp, long *yp)
{
	*xp += *yp;
	*xp += *yp;
}

void twiddle2(long *xp, long *yp)
{
	*xp += 2 * *yp;
}
//

上面的两函数实现功能是相同的。但是twiddle2的效率更高一些。

(1)twiddle1需要6次内存引用(2次读*xp,2次读*yp,2次写*xp)
(2)twiddle2需要3次内存引用(1次读*xp,1次读*yp,1次写*xp)

 

二、详解

1、优化编译器的能力和局限性

注:理解后再补充

 

致谢

1、《深入理解计算机系统》[第3版],作者 Randal E.Bryant, David R.O`Hallaron 译者 龚奕利 贺莲   

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读