人们一直告诉我,不要写“向左移动1位”,只要写"multiple by 2",因为它的可读性更好,而且编译器将足够智能地进行优化。
编译器通常会做什么,而开发人员不应该做什么(为了代码的可读性)?我总是写string.length == 0
而不是string == ""
,因为我在5-6年前的某个地方读到过,说数值运算要快得多。这还是真的吗?
或者,大多数编译器是否足够聪明,可以转换以下代码:
int result = 0; for (int i = 0; i <= 100; i++) { result += i; }
转到:int result = 5050;
你最喜欢做的“优化”是什么,因为大多数编译都做不到?
发布于 2012-04-06 10:44:51
算法:到目前为止,地球上还没有编译器可以为您选择更好的算法。太多的人在进行基准测试后匆忙跳到重写C语言部分,而实际上他们一开始就应该考虑替换他们正在使用的算法。
https://stackoverflow.com/questions/10038537
复制相似问题