Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 为什么Lua中的本地化函数更快? 测试1:本地化_Performance_Lua - Fatal编程技术网

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
来尝试计时。这可能的重复与函数无关,也就是说,所访问的值的类型。它只与计算表达式以获取值的复杂性有关。