何时在Elixir中内联函数

何时在Elixir中内联函数,elixir,Elixir,所以问题很简单,内联到底做了什么,什么时候应该在Elixir中使用它 内联的意思是:@compile{:inline,myfun:1} 另外,我知道Erlang文档中有关于这个主题的信息,但我仍然不确定我是否理解。当您内联函数时,它的调用将在编译时被函数体本身替换。这可以用来压缩特定函数调用的最后一点性能,从而消除单个函数调用的开销。不幸的是,它还将使堆栈跟踪更难读取,因为编译代码中实际上不存在原始函数。因此,当您使用内联时,您应该确信内联函数是防弹的,否则您将使代码更难调试 除非你有一个一直被

所以问题很简单,内联到底做了什么,什么时候应该在Elixir中使用它

内联的意思是:
@compile{:inline,myfun:1}


另外,我知道Erlang文档中有关于这个主题的信息,但我仍然不确定我是否理解。

当您内联函数时,它的调用将在编译时被函数体本身替换。这可以用来压缩特定函数调用的最后一点性能,从而消除单个函数调用的开销。不幸的是,它还将使堆栈跟踪更难读取,因为编译代码中实际上不存在原始函数。因此,当您使用内联时,您应该确信内联函数是防弹的,否则您将使代码更难调试

除非你有一个一直被调用的简单函数,否则我真的不需要内联。在这种情况下,使用内联–您将发现对列表、映射等进行操作的基本函数,这些函数可能会被频繁调用。请注意,即使在Elixir源代码中,内联也很少使用,因为只有在少数情况下才能从中受益