gpt4 book ai didi

.net - 在运行时,与扩展方法相关的开销是多少? (。网)

转载 作者:行者123 更新时间:2023-12-03 23:46:10 24 4
gpt4 key购买 nike

这个问题已经在这里有了答案:




已关闭8年。




Possible Duplicate:
Extension Method Performance



在受CPU和/或内存访问限制的数据处理应用程序中,单行扩展方法的开销是否值得注意?它比普通的函数调用高还是仅是编译器/IDE抽象?例如,如果每秒调用数千次以下函数,那么是否会建议使用以下函数:
public static void WriteElementString(this XmlTextWriter writer, string name, int data)
{
writer.WriteElementString(name, data.ToString());
}

最佳答案

没有开销。这只是一个使用不同语法调用的静态方法。生成的IL只是一个正常的调用。

换句话说,扩展方法的开销与

writer.WriteElementString(name, data);

好像你刚刚打电话
XmlWriterExtensions.WriteElementString(writer, name, data);

...因为生成的IL将完全相同。

在性能方面,“每秒上升数千次”是什么。即使没有内联方法,在该级别上具有额外堆栈级别的开销也将是微不足道的……我相信在这种情况下很有可能会发生这种情况。

但是,通常会采用性能规则:在您进行测量之前,所有的猜测都必须是猜测。或至少在这种情况下,实际命中是猜测。 “扩展方法只是在编译器中带有语法糖的常规方法”不是猜测。

关于.net - 在运行时,与扩展方法相关的开销是多少? (。网),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1442866/

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