c++ - 在C++应用程序中嵌入Lua脚本会把Lua部分编译成机器码吗?

标签 c++ c lua luajit

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

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

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

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

最佳答案

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

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

关于c++ - 在C++应用程序中嵌入Lua脚本会把Lua部分编译成机器码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678639/

相关文章:

c++ - 如何在 C++ 中的 ifstream 函数生成的文件中搜索特定单词

强制转换为 C99 中的指针数组

Lua:表预期,得到零

security - Lua : what experience is there? 的功能

ssl - 协助解密使用 Base64 > SSL 混淆的 Lua 脚本

c++ - 链接 OpenCV 4.1.0,包括作品,库不

c++ - 如何制作一个可以处理 .txt 文件而不显示它的 C++ 程序

c++ - 等待线程的最佳方法是什么?

c - 3D数组中arr +1, *arr+1 , **arr+1 的含义

c++ - SDL - 动态阿尔法?