应该何时内联函数(性能方面)?

Mas*_*tic 1 optimization performance f# inline

我亲眼目睹了提及内联的帖子,使得他们的软件运行得更快[例如].
这让我很奇怪,我什么时候应该为性能进行内联功能?

此外,C++内联的相同指南是否适用?

注意:
我不是在问什么时候(显然需要的时候),或者为什么,我问的是,如果我碰巧遇到瓶颈,内联什么时候会有用?

Tom*_*cek 5

根据我的经验,inline关键字主要用于两种情况:

  • 它允许您编写通用数字代码,这是不可能的inline.因此,在这种情况下,无论性能问题如何,都需要内联.

  • 我认为泛型比较(参见这个SO问题)是inline显着提高性能的主要用例(因为内联代码可以专门用于当前类型而不是使用泛型比较).

在所有其他情况下,添加inline可能会使代码更快一点,但可能不会产生显着影响.所以我只会在你实际优化某些瓶颈时使用它.