我正在编写一个在任何情况下都需要大量数字运算的程序。
通常,我可以选择通过 {3-4 个加法或乘法以及一个或两个 if-else 检查,可能是大约五个数字} 来计算一个值,或者从查找表中读取该值。一切都是int。
与这些简单的操作相比,内存读取的速度有多快?
我正在编写一个在任何情况下都需要大量数字运算的程序。
通常,我可以选择通过 {3-4 个加法或乘法以及一个或两个 if-else 检查,可能是大约五个数字} 来计算一个值,或者从查找表中读取该值。一切都是int。
与这些简单的操作相比,内存读取的速度有多快?
这是不可能以任何有意义的方式回答的。这取决于实际代码以及您使用的平台。作为一般规则,如果有一些简单的本地优化可能会起作用,JIT 编译器会为您完成它们。
您最好执行以下操作:
查找表的问题在于您正在用时间换取空间,而空间使用取决于您的应用程序使用的输入组合的数量。查找表方法仅在有限的情况下有效。
性能调优的基本原理;“不要猜测,测量它”