稍微说明一下我的问题。我知道Code首先应该是可读的。但我想知道是否有某些技巧可以使性能有所提升。
如果有活动,我知道80%的时间会真实。我应该把Code放在If子句中的哪个位置?
if(Event){
//put here the likely to happen?
}else{
//or here?
}
我对此的想法:大多数现代处理器猜测他们采取哪些分支并分析他们的决定。但在这种情况下,我知道哪个猜测会更好。我能以任何方式支持这个吗?
我应该使用这样的表达式:x << 2
我可以,或编译器是否应该为了可读性而做这项工作?
我一般来说,使用递归函数,我发现它更具可读性。或者可以更稳定的迭代函数。例如,当完成递归时,Fibonacci会在相对较小的输入上产生堆栈溢出。
而迭代实现更强健壮即可。
总结一下:我能做些什么来支持编译器(在我的情况下是gcc)所做的真正优化?是这些例子要考虑还是我根本不应该考虑这个?
我希望这个问题不太理论化。 提前谢谢!