方法封装的性能成本

2024-03-15

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

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

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


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

尤其编写更快的托管代码:了解事物的成本 https://msdn.microsoft.com/en-us/library/ms973852.aspxMSDN 上的文章给出了以下方法调用成本的估计:最长 6.8 纳秒(对于2003级别的机器)如果调用没有优化。

考虑阅读本文的其余部分。特别是表 3 不仅讨论了方法调用的成本,还讨论了操作的成本就像加法、减法、乘法和除法成本一样微不足道。

如果您需要确认方法是否内联 - 许多 SO 问题都涵盖了它,例如我可以检查 C# 编译器是否内联了方法调用吗? https://stackoverflow.com/questions/616779/can-i-check-if-the-c-sharp-compiler-inlined-a-method-call

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方法封装的性能成本 的相关文章

随机推荐