【发布时间】:2010-10-20 07:17:33
【问题描述】:
我正在将我的 for 循环更改为使用 ++i 而不是 i++ 并开始思考,这真的有必要了吗?当然,今天的编译器自己进行这种优化。
在这篇文章中,http://leto.net/docs/C-optimization.php,Michael Lee 从 1997 年开始讨论其他优化,例如内联、循环展开、循环干扰、循环反转、强度降低等。这些还有意义吗?
我们应该进行哪些低级代码优化,哪些优化可以安全忽略?
编辑:这与过早优化无关。 优化的决定已经做出。现在的问题是什么是最有效的方法。
轶事:我曾经看过一个需求规范,上面写着:“程序员应该左移一位而不是乘以 2”。
【问题讨论】:
-
您的问题似乎是一个比我最初想象的更普遍的关于编译器当前最新技术的问题。我发现最有用的答案就是查看我选择的编译器发出的程序集。但只有在我尝试了其他所有方法之后。
-
请注意您的编辑:如果您不知道要优化什么,那么所有优化都为时过早。仅仅知道“我们需要优化”是不够的。在您知道“我们需要优化 这段 代码”之前,任何优化尝试都为时过早。
标签: c++ c optimization