性能方面,多次直接访问数组元素还是将其值赋给变量并使用该变量会更好?假设我将在下面的代码中多次引用该值。直接访问数组元素与将其分配给变量
这个问题背后的原因是,访问一个数组元素大概会在每次完成时涉及一些计算成本,而不需要额外的空间。另一方面,将该值存储在变量中会消除这种访问成本,但会占用额外的空间。
// use a variable to store the value
Temp = ArrayOfValues(0)
If Temp > 100 Or Temp < 50 Then
Dim Blah = Temp
...
// reference the array element 'directly'
If ArrayOfValues(0) > 100 Or ArrayOfValues(0) < 50 Then
Dim Blah = ArrayOfValues(0)
...
我知道这是一个简单的例子,但假设我们在谈论在实际使用中在什么点(其中值将被多次引用)规模较大的空间和计算时间价值之间的权衡考虑(如果有的话)?
优化编译器将对HLL进行彻底的尝试。如果您使用汇编或关闭优化,寄存器比缓存更快,所以应尽可能将常用值加载到寄存器中。总的来说,我认为注册压力和内存层次之间的临界点可能是经验问题。 – Patrick87