关于几个优化

关于几个优化

计算机中的指令执行时间是:

加减法运算  -----1ns

乘法运算    ------5~6ns

除法运算   -------50ns

因此在编写程序时,应该使用一些操作代替乘除法的操作。

1、表达式优化(替换程序中的乘除法)

如 a * 8 可以替换为 a << 3

而a * 13 可以替换为 a << 3 + a << 2 + a

但是除法运算却不可以。只有除法操作中的除数正好是一个2的次幂时才能替换除法运算如a / 8可以替换为a >> 3.但是a / 13则无能为力。

2、表达式优化(常量折叠)

在进行运算的过程中,通常需要进行连续的四则运算。如下所示:

int a = 10;
a = a + 2 * 17 + 6;

这个程序段实际上等同于:

int a;
a = a + 40;

写成这样程序实际上只需要进行一次计算,计算a + 40的值。

3、表达式优化(存储问题)

语句 x = x + 1;

该语句在编译时编译器会认为赋值号两边的操作数不是同一个操作数,而是两个。尽管用户知道这是一个操作数。这时该语句分为三步,分别是:寻找存储左边操作数x的内存单元地址;寻找存储右边操作数x的内存单元地址;计算x+1的值并存储在变量x中。

而语句 x += 1;

编译器会认为赋值号两边的操作数是同一个。所以只需要两步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值