【发布时间】:2020-04-17 15:43:27
【问题描述】:
所以,我知道将全局函数分配给局部变量会使它们运行得更快,就像编写代码一样:
local _cos = math.cos
for i = 1, 100000 do
_cos(i)
end
比没有首先本地化函数的代码快得多:
for i = 1, 100000 do
math.cos(i)
end
但是,根据我的测试,tonumber、type 或 pairs 之类的东西似乎不起作用。
有人能解释一下为什么一些全局函数变得更快,而另一些似乎根本没有受到影响吗?
【问题讨论】:
-
我知道的唯一区别是获取
tonumber需要一个表访问权限(_ENV.tonumber),而获取cos需要两个表访问权限(_ENV.math.cos)。本地化tonumber真的一点都没有加快速度吗? -
如您所说,这可能与表访问次数有关。是的,在本地化
tonumber时速度并没有提高,这也让我感到惊讶。
标签: lua