首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >扩展方法太昂贵了吗?

扩展方法太昂贵了吗?
EN

Stack Overflow用户
提问于 2010-08-16 21:30:15
回答 4查看 593关注 0票数 2

如果我给我的程序添加扩展方法,我的程序性能会有多大的损失?

它的工作速度会变慢,还是加载速度会变慢?

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-16 21:33:08

如果我将扩展方法添加到程序中,会对程序性能产生多大的影响?它的工作速度会变慢,还是加载速度会变慢?

不会影响性能。扩展方法是真正的静态方法。

票数 9
EN

Stack Overflow用户

发布于 2010-08-17 04:44:08

扩展方法只是应用于静态方法的语法糖。

从理论上讲,静态方法比非虚拟实例方法更快(不需要检查空this),而非虚拟实例方法又比虚拟实例方法更快(不需要查找实现来调用)。

从理论上讲,优化也可以消除这些差异。当涉及到扩展方法时,它在静态方面也被夸大了,因为对象可能会以一种需要null检查的方式来处理(无论是显式的还是隐式的)。

在实践中,无论扩展方法做什么,无论它是扩展还是实例,都有可能产生更大的影响。

票数 4
EN

Stack Overflow用户

发布于 2010-08-17 05:09:05

我在一个真正长时间运行的循环中使用一些整数扩展方法快速地对此进行了性能测试,发现在我测试的情况下,性能通常是相同的。当调试或运行未优化的程序集时,扩展方法的运行速度大约是我的控件用例的两倍,这是有意义的,因为调试器不能内联这些方法,并且必须跟踪调用堆栈等。

因此,在准备发布的程序集中,没有性能损失。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3493574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档