何时在Elixir中内联函数

NoD*_*ame 12 elixir

所以问题很简单,内联究竟做了什么以及何时应该在Elixir中使用?

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

PS我知道,有一个在二郎文档中的主体的信息在这里,但我仍然不知道我的理解.

Pat*_*ity 20

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

与内联,除非你有一个简单的函数,称为我真的不打扰所有的时间.看一下Elixir源代码,以了解使用内联的情况 - 您将找到在列表,地图等上运行的基本功能,并且可能会非常频繁地调用.请注意,即使在Elixir源代码中,也非常谨慎地使用内联,因为在极少数情况下您只能从中受益.