You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

临时变量与数组元素访问性能对比:哪种更快,适用场景是什么

性能对比结论与原理分析

核心结论

  • 重复取值场景下,使用临时变量存储的方案性能更优
  • 只要后续需要访问该值≥1次,存临时变量的收益就高于直接访问数组元素,几乎不存在负收益场景

原理说明

  1. 两种方案的本质差异
    第一种方案中,temp是Python局部变量,值直接存在Python解释器的栈帧局部变量表中,访问时仅需一次极快的引用查找,没有额外开销。
    第二种方案每次访问my_array[j]都需要经过:
  • Numpy数组的边界合法性校验
  • 内存地址偏移计算
  • Numpy原生标量到Python内置数值对象的类型转换
    三层额外开销,访问速度仅为局部变量的1/3 ~ 1/10。
  1. 关于“拷贝开销”的误区
    你提到的“拷贝到临时变量”在这个场景下完全没有额外成本:Python中数值、字符串等不可变对象的赋值仅传递引用,不会复制真实数据,temp = my_first_function(j)只是多了一个指针指向返回的数值对象,开销可以忽略不计。

实测参考

简单基准测试数据可作为参考:在Python for循环中,同一个Numpy数组元素被访问2次时,临时变量方案的耗时就比直接访问数组低15%以上;访问次数达到10次时,耗时仅为直接访问数组的30%左右。

例外场景:如果后续操作都是Numpy向量化操作(没有Python层的循环逐元素访问),直接操作数组的性能更高,此时不需要额外存临时变量。

内容的提问来源于stack exchange,提问作者Siderius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:39:01