1

我有一个关于 Lua 的新手问题。

如果我在我的 C++ 应用程序中嵌入了一些 Lua 脚本。当我编译我的 C++ 应用程序时,Lua 脚本部分会被编译成机器代码还是 C++ 应用程序每次都使用 Lua 解释器运行 Lua 脚本部分?

网上说使用 LuaJIT 会大大提高嵌入式脚本的性能,那么我猜 C++ 应用程序中的 Lua 脚本永远不会编译成机器码。

如果我想在这种情况下充分发挥性能,即我想用 Lua 编写我的程序的一部分以嵌入到 C++ 应用程序中。我最好的选择是什么?有什么东西可以用来将 Lua 部分编译成 C++/C 部分,这会提高性能吗?

4

1 回答 1

1

JIT 编译器的全部意义在于在运行时从源文件生成机器代码。

LuaJIT 会在你的代码中寻找频繁运行的“热点”(例如内部循环或经常使用的函数),并尝试将它们编译为机器码。代码来自哪里并不重要;加载后,这完全无关紧要。

于 2014-05-15T14:54:04.670 回答