是否有#34;编译器友好"代码/惯例

时间:2017-01-26 18:35:20

标签: c if-statement optimization

稍微说明一下我的问题。我知道Code首先应该是可读的。但我想知道是否有某些技巧可以使性能有所提升。

  1. 如果有活动,我知道80%的时间会真实。我应该把Code放在If子句中的哪个位置?

    if(Event){ 
        //put here the likely to happen? 
    }else{
        //or here?
    }
    
  2. 我对此的想法:大多数现代处理器猜测他们采取哪些分支并分析他们的决定。但在这种情况下,我知道哪个猜测会更好。我能以任何方式支持这个吗?

    1. 我应该使用这样的表达式:x << 2我可以,或编译器是否应该为了可读性而做这项工作?

    2. 我一般来说,使用递归函数,我发现它更具可读性。或者可以更稳定的迭代函数。例如,当完成递归时,Fibonacci会在相对较小的输入上产生堆栈溢出
      迭代实现更强健壮即可。

    3. 总结一下:我能做些什么来支持编译器(在我的情况下是gcc)所做的真正优化?是这些例子要考虑还是我根本不应该考虑这个?

      我希望这个问题不太理论化。 提前谢谢!

0 个答案:

没有答案