Lua 性能基准测试

我想在不使用外部依赖的情况下对 Lua 进行基准测试。当前我使用的是 os.clock:

local function dummy() end
local start = os.clock() 
for i=1,n do dummy() end -- 循环/调用开销
local overhead = os.clock() - start
local start = os.clock()
for i=1,n do f() end
local time = os.clock() - start - overhead

这是在 Lua 中进行基准测试的正确方法吗?在 Lua 中有更好/更准确的方法进行基准测试吗?

点赞
用户4403144
用户4403144

请见《Lua编程》中的“Profiles”。在那里,Lua的创始人Roberto Ierusalimschy提醒我们不要过度依赖Lua反射(即运行时访问内部Lua操作)来进行精确的分析。对于计时分析,他说:

对于需要计时的分析,最好使用C接口:因为每个钩子都需要调用Lua,这会产生太高的开销,从而通常无效。

阅读整个章节以获得更好的背景和更深入的了解Lua反射。

2018-06-20 03:55:15