【发布时间】:2021-04-15 20:18:28
【问题描述】:
根据这个 Lua 优化文档:https://www.lua.org/gems/sample.pdf
对外部局部变量的访问(即,对于一个 封闭函数)不如访问局部变量快,但是 它仍然比访问全局变量要快。考虑下一个片段:
function foo (x)
for i = 1, 1000000 do
x = x + math.sin(i)
end
return x
end
print(foo(10))
我们可以通过在函数 foo:local 之外声明一次 sin 来优化它
sin = math.sin
function foo (x)
for i = 1, 1000000 do
x = x + sin(i)
end
return x
end
print(foo(10))
redis.call 是一个全局吗?我们可以通过定义一个指向它的局部变量来优化它吗?特别是对于多次调用redis.call 的紧密循环。
后续还有KEYS 和ARGV 也是globals?
【问题讨论】: