Raymond Chen在他最近关于代码优化的post 上说了这句话……显而易见的优化--一个需要优化的优化--如果你考虑所有需要考虑的因素,往往是“去优化”……
我敢肯定,在你学到更多之后,你一定遇到过/甚至是编码优化,你对此感到尴尬……
愿意分享一下吗?
发布于 2008-11-28 01:53:59
Duff's Device,它是如此扭曲,以至于它看起来甚至不应该在ISO中编译:
int n = (count + 7) / 8;
switch (count % 8) {
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}发布于 2008-11-28 01:12:06
我最喜欢的例子是XOR swap algorithm
// swap these two values:
int x = 4;
int y = 2;// original:
int temp = x;
x = y;
y = temp;// optimized version:
x ^= y;
y ^= x;
x ^= y;是的,它不使用临时变量,通常可以在三个处理器周期内完成,但它的作用并不明显!
发布于 2008-11-28 02:18:59
我最喜欢的是
// original code
int a[10];
a[5] = 3;
// optimized code
int a[10];
*(a + 5) = 3;是的,突然之间,它神奇地更快了!!</sarcasm>
https://stackoverflow.com/questions/324896
复制相似问题