垃圾收集 – Lua的GC和实时游戏
发布时间:2020-12-15 00:25:30 所属栏目:大数据 来源:网络整理
导读:据我所知,跟踪GC无法避免在完成GC期间阻塞线程. 我使用过XNA C#,GC时间无法删除.所以我切换到较低级别的语言C,但我意识到我需要脚本语言.我在考虑Lua,但我担心Lua的GC机制. Lua正在使用增量跟踪GC,并且线程阻塞也应该是. 那我该如何在实时游戏中处理这个呢?
据我所知,跟踪GC无法避免在完成GC期间阻塞线程.
我使用过XNA C#,GC时间无法删除.所以我切换到较低级别的语言C,但我意识到我需要脚本语言.我在考虑Lua,但我担心Lua的GC机制. Lua正在使用增量跟踪GC,并且线程阻塞也应该是. 那我该如何在实时游戏中处理这个呢? 解决方法
Lua的力量在于它不受你的影响.想上课吗?这可以用metatables构建.想要沙盒吗?使用
lua_setfenv.
至于垃圾收集器.首先使用它.如果以后发现性能问题,请使用lua_gc来微调其行为. 一些例子: >在减速会出现问题的那些时候禁用垃圾收集器. 您可能还会考虑使用其他脚本语言. Squirrel很难成为第二代Lua.它试图保留Lua的所有优点,同时放弃任何设计错误.两者之间的一个巨大差异是squirrel uses reference counting而不是垃圾收集.事实证明,引用计数可能比垃圾收集慢一点,但它是非常确定的(AKA实时). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |