Lua 编译器能否显式请求内联? LuaJIT呢?

标准 Lua 编译器中是否有关键字或其他功能,可以明确要求内联?LuaJIT 呢?

点赞
用户5675002
用户5675002

在原生 Lua 解释器中没有函数内联功能。有一些工具可以在源代码级别上进行内联,但这不是你所询问的。

LuaJIT 在生成本地代码时会进行一些内联,但这不能从外部控制,没有明确的“内联”关键字。而且有一些限制可以内联的内容。即使用 FFI 库调用本地代码的调用将被内联,但通过经典的 Lua/C 接口注册的函数的调用则不能被内联。

2018-09-21 06:38:36
用户2226988
用户2226988

不行。

但这只适用于不是closures的函数。(似乎没有其他实现closures的方法,因为哪里可以节省时间呢?)

在某些情况下,尾调用会更有优势,特别是如果你担心堆栈空间。

2018-09-23 19:52:42