最近在 dotnetpearls.com 上阅读一篇文章 here说静态 ctors 会受到大量的性能影响。
不明白为什么?
最佳答案
我认为在大多数用例中“大量”是一种夸大其词。
由于 beforefieldinit flag 的存在/不存在,拥有静态构造函数(即使它什么也不做)会影响类型初始化时间.当你有一个静态构造函数时,对时间有更严格的保证。
对于大多数 代码,我认为这没有太大区别 - 但如果您是紧密循环并访问类的静态成员,则可能会有所不同。就我个人而言,我不会太担心它 - 如果您怀疑它与您的真实应用程序相关,那么测试它而不是猜测。微基准测试很可能会夸大此处的影响。
值得注意的是 .NET 4 behaves somewhat differently to previous versions当涉及到类型初始化时 - 所以任何基准测试都应该真正显示不同的版本以便相关。
关于c# - 静态构造函数会导致性能开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2921828/