【问题标题】:Can you explicitly ask the Lua compiler to inline? What about the LuaJIT?你能明确要求 Lua 编译器内联吗? LuaJIT 呢?
【发布时间】:2018-09-21 05:43:05
【问题描述】:

标准 Lua 编译器中是否有关键字或其他一些功能允许您显式地inline? LuaJIT 呢?

【问题讨论】:

    标签: lua inline luajit inlining


    【解决方案1】:

    原版 Lua 解释器中没有函数内联。有一些工具可以在源代码级别内联代码,但这不是您要的。

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

    【讨论】:

      【解决方案2】:

      没有。

      不过,它只能应用于不是closures 的函数。 (用其他方法来实现闭包似乎不值得;因为节省的时间在哪里?)

      在某些情况下,tail-call 会带来更多优势,尤其是在您关心堆栈空间的情况下。

      【讨论】:

        猜你喜欢
        • 2017-11-07
        • 2013-05-03
        • 2012-09-09
        • 2011-01-11
        • 2015-02-22
        • 1970-01-01
        • 2017-06-09
        • 1970-01-01
        相关资源
        最近更新 更多