【发布时间】:2020-12-28 02:08:41
【问题描述】:
假设我有一个数字数组,每个数字都比前一个大 n。 给定数组的一个元素,哪种方法检索下一个元素更快?
array[i]+n
array[i+1]
我知道差异可能很小,但我很好奇理论上哪个更有效?
如果每个都是前一个的 n (*n) 倍,它会改变吗?
编程语言重要吗?如果是这样,那么javascript呢?
【问题讨论】:
-
您能否提供更多上下文或有关此声明的示例? “每个比前一个大 n 的数字数组”。编程语言和数组是静态的还是动态的一样重要。编译语言可以在编译时而不是运行时执行计算。
-
正如轶事细节:在许多当前的 CPU 中,有一些指令格式可以访问具有固定偏移量的数组中的字段以及基于某些寄存器的可变偏移量,并“免费”完成所有这些计算(即,由于用于此特定计算的专用电路,它们可以以与从固定地址访问内存完全相同的速度执行)。我不能告诉你任何给定系统上的任何给定 JavaScript 引擎是否会使用它,但这应该让你知道谁会误导一些关于性能的“明显”假设。
标签: javascript arrays performance memory