Lua中访问全局表值与访问全局变量的性能差异是什么?

比如你有:

someNumber = 30
someTable = { someSubTable = { someNumber = 30 } }

访问和修改这些变量之间是否存在显著的性能差异?

someNumber = 31
someTable.someSubTable.someNumber = 31

原文链接 https://stackoverflow.com/questions/70602535

点赞
stackoverflow用户2858170
stackoverflow用户2858170

当然,索引一个二维表会带来一些开销。但通常情况下,这并不是你应该考虑的问题。很少有情况下这种差异对你有影响。过早的优化被认为是一个大忌。

我运行了一个简单的基准测试,调用一个执行赋值100百万次的函数。相对执行速度:

  • 分配给全局 x:1
  • 分配给全局 t.t.x:1.08
  • 分配给全局 t[1][1]:1.09
2022-01-06 08:12:23