方法封装的性能成本

封装方法是否有性能成本? 一个非常简短,随意的例子:

public static decimal Floor(decimal value) { return Math.Floor(value); } 

上面的函数会被内联吗? 如果是这样,它会与从代码中调用Math.Floor()完全相同吗? 在写这篇文章之前我做了谷歌。

方法可能会内联(在JIT时,C#编译器不在 IL中的内联方法)。 即使不是成本也不太可能影响您的整体计划。 由于优化和性能数字特定于特定代码/应用程序,因此如果您发现性能问题,则需要测量您的案例。

特别是编写更快的管理代码:知道 MSDN上的什么成本文章给出了方法调用成本的以下估计:如果调用未被优化,则最大6.8纳秒 (对于2003级机器)。

考虑阅读本文的其余部分。 特别是表3不仅讨论了方法调用的成本,还讨论了加法,减法,乘法和除法成本等多少操作。

如果你需要确认方法是否内联 – 它包含在许多SO问题中,例如, 我可以检查C#编译器是否内联方法调用?