Performance 为什么Lua中的本地化函数更快? 测试1:本地化
代码:Performance 为什么Lua中的本地化函数更快? 测试1:本地化,performance,lua,Performance,Lua,代码: local min = math.min 结果: local min = math.min 非本地:0.719(158%) 本地化:0.453(100%) 结论: local min = math.min 是的,我们应该本地化所有标准的lua和springapi函数 资料来源: 性能提升的原因是什么 本地最小值=math.min 请记住,table.name只是table[“name”]的语法糖(它们完全等效)。全局变量只是环境表中的键,因此math.min是\u ENV[“ma
local min = math.min
结果:
local min = math.min
非本地:0.719(158%)本地化:0.453(100%) 结论:
local min = math.min
是的,我们应该本地化所有标准的lua和springapi函数
资料来源:
性能提升的原因是什么
本地最小值=math.min
请记住,table.name
只是table[“name”]
的语法糖(它们完全等效)。全局变量只是环境表中的键,因此math.min
是\u ENV[“math”][“min”]
。这是获取实际函数值的两个哈希表查找
将值复制到
local
会将其放入VM寄存器中,因此无需查找。访问局部变量只是从某个堆栈位置读取值。相反,math.min
意味着双重查找表的散列部分(在全局表中搜索math
,在表中搜索min
)使用CPU密集型计算字符串math
和min
的哈希函数值。也可以使用local math=math
而不是local min=math.min
来尝试计时。这可能的重复与函数无关,也就是说,所访问的值的类型。它只与计算表达式以获取值的复杂性有关。