如何开始计算关于 Lua 内部性能的统计数据?

如何确定 Lua 的内部性能,即开始计算有关表格计数,引用计数,函数调用计数和其他统计数据。

我猜想我的 Lua 场景的内部性能问题出现在与表格操作相关的地方(即创建大量表格 >= 1200),这会影响场景的性能。

我希望避免重新设计场景并确保瓶颈点。

点赞
用户4984564
用户4984564

有可能会对你有所帮助的是 debug 库

使用 os.clock() 来计算代码块的执行时间也能帮助你粗略地确定瓶颈所在。

使用 luac -p -l 来查看程序生成的指令,也能帮助你深入了解代码的运行机制,找到可能导致代码运行缓慢的问题。


下面是一个简短的示例,展示了如何在运行时输出一个函数的指令:

local function map(f, a, ...) -- just a simple example function :)
  if a then
    return f(a), map(f, ...)
  end
end

-- This is where the magic happens ;)
f = io.popen('luac -l -p -', 'w')
f:write(string.dump(map))
f:close()
2019-11-15 07:43:34