了解调用 array.length
将 for 循环更新为 for-each 循环时,经常会观察到实例化循环带有 array.length 的变量消除了每次迭代中对 size() 方法调用的需要,从而增强了集合的性能。然而,这提出了一个问题:与使用常规变量相比,调用 array.length 的成本是多少?
答案:恒定时间操作
相反,调用 array .length 是 O(1) 操作或常数时间操作。这意味着访问 array.length(其行为相当于数组的公共最终成员)并不比访问局部变量慢。这与 size() 等方法调用形成鲜明对比,后者涉及额外的开销。
现代 JIT 编译器通常会优化对 array.length 的调用,从而有效地消除成本。要验证这一点,请检查 JIT 编译器的源代码或请求 JVM 导出 JIT 编译的本机代码进行检查。
优化异常
很重要需要注意的是,在某些情况下,JIT 编译器可能无法优化 array.length 的成本:
以上是## 调用 array.length 真的很昂贵吗? 查看数组大小访问的成本。的详细内容。更多信息请关注PHP中文网其他相关文章!