toz*_*han -3 c cpu optimization
因此,当我学习编程时,我了解到一个简单的'x%2'将是一个很好的快速方法来确定一个数字是否是偶数.我已经开始使用'x&1',因为我相信它在CPU中更快(尽管今天的速度可能毫无意义).任何了解CPU的人都可以了解这是否真的更快,或者是否有一些简单的编译器优化?
C是一种编译语言.它不是汇编语言.
编译器的工作就是至少知道机器指令集的数量(通常更多).
如果您知道x % 2
并且x & 1
等效,那么您认为编译器应该知道的那种情况吗?
对于任何体面的编译器,如果你编写x % 2
,并且编译器知道你的机器上的位测试会更快,它将发出代码来执行位测试,这一切都是自己的.
最重要的是,你应该编写清楚表达你的意图的代码,并让编译器担心优化它.只有在极少数情况下才能通过这种"微优化"显着提高代码的性能.只有当您证明您尝试优化的代码是一个重要的瓶颈,并且您已经证明所提议的改进真的明显更快时,才值得执行它们.否则,不要打扰:你可能在浪费你的时间.
但无论如何,我们无法告诉你哪种方式更快,因为每台机器可能都不同.要确定,你将不得不自己测量它.
归档时间: |
|
查看次数: |
85 次 |
最近记录: |