我试图找出比较两个if / else语句的CPU使用率和性能的差异,采取以下函数
function f(x):
if(condition) return true;
else return false;
function f'(x):
if(condition) return true;
return false;
函数的目的并不重要,当然在两种情况下,如果'if'为true,则返回true,否则返回false。
两段代码做同样的事情,我在考虑性能和CPU使用情况,这两个程序在删除else语句和使用顺序执行来执行'else'时会有什么区别,或者编译时差异会丢失吗?
答案 0 :(得分:3)
这两个功能没有区别。任何半合适的编译器都会为它们生成相同的代码。
由于primary key
分支最后包含foreign key constraint
,因此第一个程序中的__declspec(naked)
是多余的。当程序被翻译成机器指令时,你最终会得到这样的结果:
__forceinline
在第二个程序if
分支是空的,所以指令序列是相同的。