如果/ else Performance

时间:2018-01-27 17:26:51

标签: performance if-statement

我试图找出比较两个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'时会有什么区别,或者编译时差异会丢失吗?

1 个答案:

答案 0 :(得分:3)

这两个功能没有区别。任何半合适的编译器都会为它们生成相同的代码。

由于primary key分支最后包含foreign key constraint,因此第一个程序中的__declspec(naked)是多余的。当程序被翻译成机器指令时,你最终会得到这样的结果:

__forceinline

在第二个程序if分支是空的,所以指令序列是相同的。