所以我试图找出 lua 语法使用之间哪种整体性能最好。
我有 3 个示例,它们基本上都做同样的事情,但我想知道它们在性能方面的排名顺序:
前1.
local test_var = true
for i = 1,3 do
if test_var then
return
end
print('test')
end
Run Code Online (Sandbox Code Playgroud)
前任。2
local test_var = true
for i = 1,3 do
if test_var then
break
end
print('test')
end
Run Code Online (Sandbox Code Playgroud)
前任。3
local test_var = false
for i = 1,3 do
if not test_var then
return
end
print(test)
end
Run Code Online (Sandbox Code Playgroud)
前任。4
local test_var = false
for i = 1,3 do
if not test_var then
goto continue
end
print('test')
::continue::
end
Run Code Online (Sandbox Code Playgroud)
前任。5
local test_var = false
for i = 1,3 do
if test_var then
print('test')
end
end
Run Code Online (Sandbox Code Playgroud)
可能还有一些其他的编写方式,但基本上我只是在寻找绝对最佳性能的方法。虽然这是非常简单的东西,但它的用途是我计划重新组织迄今为止在我正在运行的许多脚本中的每一个用法,有些脚本做了一些相当复杂的工作,所以我希望尽可能地改进事情
说真的,如果您使用 Lua,您不应该尝试在该级别上进行优化,特别是如果您对内部结构的了解不足以自己回答这些问题。
不过有一些提示:
goto,比循环构造更快,因为它是一个更“低级”的东西,但是 Lua VM 对于许多语法构造(例如 for 循环)有特殊指令,因此它们很可能比普通的 goto 执行得更好。最后,只需将条件移出循环即可。
PS:关于提问的注意事项
当询问性能时,请始终给出实际的数字或评论其范围。当变量可以随时间变化时,对其进行注释或添加一些虚拟代码来更改它们。
根据您提出问题的方式,天真的答案是:
if test_var then
print("test") print("test") print("test")
end
Run Code Online (Sandbox Code Playgroud)
这甚至不会是错误的。