调用luaL_loadbuffer肯定会非常快速地遵守脚本,但是每次执行脚本时执行此操作似乎都是不必要的,因为脚本不会更改.
尝试使用lua_dump()保存二进制文件然后执行它,但lua_pcall()由于某种原因不接受二进制文件.
关于如何优化的任何想法? (LuaJIT在这里不是一个不可思议的选择)
一月
luaL_loadbuffer(state,buff,len,name); // TODO: check return value while (true) { // sleep 10ms lua_pushvalue(state,-1); // make another reference to the loaded chunk lua_call(state,0); }
您会注意到我们只是复制堆栈顶部的函数引用,因为lua_call会删除它从堆栈调用的函数.这样,您就不会丢失对已加载块的引用.