加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

优化Lua以进行循环执行

发布时间:2020-12-15 00:26:25 所属栏目:大数据 来源:网络整理
导读:我每个程序周期10毫秒执行一次我的Lua脚本.使用相同的Lua_state(luaL_newstate在我的应用程序中调用一次) 调用luaL_loadbuffer肯定会非常快速地遵守脚本,但是每次执行脚本时执行此操作似乎都是不必要的,因为脚本不会更改. 尝试使用lua_dump()保存二进制文件
我每个程序周期10毫秒执行一次我的Lua脚本.使用相同的Lua_state(luaL_newstate在我的应用程序中调用一次)

调用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会删除它从堆栈调用的函数.这样,您就不会丢失对已加载块的引用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读