谁能告诉我是否可以通过将将被重复调用的lua脚本加载到内存中以通过LuaInterface的 dostring() 功能而不是 dofile() 来执行,来合理地预期会提高性能吗?

我是否认为通过减少每次迭代的文件系统访问性能会更好而正确吗?

有什么方法可以在 Lua VM 中缓存脚本吗?

最佳答案

如果要多次执行某些lua代码,更好的方法是使用LoadFile或LoadString。
将Lua代码作为LuaFunction加载,例如:

LuaFunction lf = xxx.LoadString("some lua code");   // xxx is an instance of LuaInterface
lf.Call();   // you can also deliver some arguments

这比DoFile和DoString快得多。
因为只需要一次编译。

09-13 08:04