gpt4 book ai didi

c# - 方法封装的性能成本

转载 作者:太空狗 更新时间:2023-10-30 00:39:54 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

特别是Writing Faster Managed Code: Know What Things Cost MSDN 上的文章对方法调用的成本进行了以下估算:如果未优化调用,最多 6.8 纳秒(对于 2003 级别的机器)。

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

如果您需要确认方法是否内联 - 许多 SO 问题都涵盖了它,例如 Can I check if the C# compiler inlined a method call?

关于c# - 方法封装的性能成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32663051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com