为什么在Lua中本地化功能更快?

816*_*055 4 performance lua

测试1:本地化

码:

local min = math.min
Run Code Online (Sandbox Code Playgroud)

结果:

非本地:0.719(158%)
本地化:0.453(100%)

结论:

是的,我们应该本地化所有标准lua和Spring API函数。

资料来源:https : //springrts.com/wiki/Lua_Performance

 

性能提升的原因是什么?

Mud*_*Mud 7

本地分钟= math.min

请记住,这table.name只是语法糖table["name"](它们完全等效)。全局变量只是环境表中的键,因此math.min也是_ENV["math"]["min"]。这是两个哈希表查找,以获取实际函数值。

将值复制到local虚拟机中将其放入VM寄存器中,因此无需查找。