2

人们一直告诉我不要写“向左移动 1 位”,而是写“乘以 2”,因为它更具可读性,并且编译将足够智能以进行优化。

编译通常会做什么,而开发人员不应该做什么(为了代码可读性)?我总是写string.length == 0而不是string == ""因为我在 5-6 年前读过,说数字运算要快得多。这仍然是真的吗?

或者,大多数编译器是否足够聪明,可以转换以下内容:

int result = 0; for (int i = 0; i <= 100; i++) { result += i; }

变成:int result = 5050;

你最喜欢做的“优化”是什么,因为大多数编译都不会做?

4

1 回答 1

5

算法:到目前为止,地球上没有编译器可以为您选择更好的算法。太多的人在基准测试后匆忙跳到用 C 重写的部分,当他们真的应该考虑替换他们首先使用的算法时。

于 2012-04-06T02:44:50.540 回答