【发布时间】:2012-01-13 14:13:36
【问题描述】:
我正在优化 C++ 代码。
在一个关键步骤,我想实现以下功能y=f(x):
f(0)=1
f(1)=2
f(2)=3
f(3)=0
哪个更快?使用查找表或i=(i+1)&3 或i=(i+1)%4?还是有更好的建议?
【问题讨论】:
-
你为什么不尝试两者并测量?另请参阅:stackoverflow.com/questions/8316332/…
-
最好的方法是测量。检查生成的代码可能会告诉您它们是相等的。如果您真的想要沉迷于微优化:避免使用该函数并将其设为宏或内联函数。
-
谢谢大家。所有的 cmets 都是正确的并且非常有用。
-
回答那些问我为什么不同时尝试这两种方法的人:我希望有人可以提供一个我没有想到的开箱即用的解决方案。无论如何,谢谢。