相关疑难解决方法(0)

什么时候优化过早?

正如Knuth所说,

我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源.

这是Stack Overflow常常出现的问题,例如"哪个是最有效的循环机制","SQL优化技术?"等问题.(等等).这些优化提示问题的标准答案是分析您的代码并首先查看它是否是一个问题,如果不是,那么您的新技术就不再需要了.

我的问题是,如果某种技术不同但不是特别模糊或混淆,那真的可以被认为是过早的优化吗?

这是Randall Hyde的一篇名为"过早优化的谬误"的相关文章.

optimization premature-optimization

79
推荐指数
10
解决办法
1万
查看次数

Java中if(!foo)和if(foo == false)之间的性能差异(如果有)是什么?

逻辑上,if(!foo)并且if(foo == false)是等价的.它们如何用Java表示?编译后两者在字节码或性能方面有什么区别吗?我无法在JLS中找到答案,搜索提出了很多关于= vs. ==拼写错误和==/equals()行为的结果.(在这种情况下,符号妨碍了我的搜索;对于未来的搜索者,否定运算符,等于假,等于假,而不是条件).

为了阻止CW辩论:这个问题不是要求人们选择哪种变体,哪种变体被认为是更好的风格.我对语言实现的差异感兴趣,所以有一个正确的答案.相关但不完全是骗局:Java中while(x = false)和while(!x)之间的区别?

编辑:

普遍的共识似乎是一个好的编译器应该优化它们到同一个东西.这是有道理的,也是我所怀疑的,但是 - 提出更多的学术问题 - 这种行为实际上是在任何地方强制执行的,还是"仅仅"是合理的事情?

java syntax performance

15
推荐指数
2
解决办法
756
查看次数