gpt4 book ai didi

lua - 如何强制执行 Lua 脚本运行时限制?

转载 作者:行者123 更新时间:2023-12-04 00:45:20 26 4
gpt4 key购买 nike

用 dofile 在 lua 中运行一个几乎微不足道的脚本,10000 次,在这台机器上大约需要 52 秒,但是如果我运行 10000 次“lua52 script.lua”,它需要 3 或 4 倍的时间。我知道涉及更多的系统调用和其他开销,但我试图实现的是运行脚本,超时时间为 3 秒,然后打印输出。我的问题是带有无限循环的脚本,无论是否有意,例如:

while(true) do
end

我可以在 Lua 中为 dofile 设置超时吗?每次使用 timeout(3) 调用解释器是我唯一的选择吗?

最佳答案

像我这样的新手在 Lua 问题上纠正 lhf 感觉有点不对,但这里是;将“count”传递给 debug.sethook 与传递“c”或“call”相同,在 n VM 指令之后传递以触发关联函数的正确掩码是“”。

因此,要限制从 dofile() 加载的代码的运行时间,请使用如下内容:

local f = function() error("timeout") end
local x,y = xpcall(function()
debug.sethook(f, "", 1e8)
local ret = dofile("script.lua")
debug.sethook()
return ret
end, debug.traceback)

关于lua - 如何强制执行 Lua 脚本运行时限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11268857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com