数组与切片:访问速度
通常认为数组在访问元素时比切片更快。然而,基准测试揭示了一个令人惊讶的结果:本地切片优于本地数组。
测试对四个函数进行了基准测试:访问全局和本地切片和数组。分析结果,全局切片确实比全局数组稍慢,与预期一致。然而,本地切片的性能明显优于本地数组。
原因
检查本地数组和切片基准函数的 amd64 程序集,出现了显着的差异。数组版本在数组访问操作期间重复将数组地址加载到内存中,而切片版本从内存加载一次后只在寄存器上执行计算。
结论
这表明访问切片元素(通过取消引用底层数组)所涉及的额外步骤并不是局部变量的重大瓶颈。在这种情况下,由于更有效地使用寄存器,切片可以提供更快的访问速度。值得注意的是,这个结果对于大型数组或切片或作为函数参数传递时可能不成立。
以上是数组与切片:哪个提供更快的元素访问?的详细内容。更多信息请关注PHP中文网其他相关文章!