Buh*_*ica 3 .net c# properties overhead
假设我们有一个带有大量冗余访问器的生成类.它们只是访问者,它们不是字段.它们不会被称为任何地方.他们只是坐在那里多余和丑陋.
例如:
public class ContrivedExample
{
public int ThisOneIsUsed { get; set; }
public int ThisOneIsNeverCalled0 { get { /* Large amounts of logic go here, but is never called. */ } }
public int ThisOneIsNeverCalled1 { get { /* Large amounts of logic go here, but is never called. */ } }
public int ThisOneIsNeverCalled2 { get { /* Large amounts of logic go here, but is never called. */ } }
//...
public int ThisOneIsNeverCalled99 { get { /* Large amounts of logic go here, but is never called.*/ } }
}
ContrivedExample c = new ContrivedExample() { ThisOneIsUsed = 5; }
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一开销是它会使.DLL更大.我预计会有零运行时间惩罚.
这会导致任何其他开销吗?即使是任何一种微小的开销?
它不太可能有任何可测量的运行时开销.无论如何,因为它是性能问题 - 如果有疑问,请测量您的使用情况并为您的案例做出决定.
未引用的方法不会被JIT编译,也不会导致直接的运行时开销.
该类的元数据将更大(与您提到的程序集大小一样).
如果在某些涉及大量反射的代码中使用该类,则可能会产生间接影响,如果代码反复反映在同一个类中,则它本身可能是错误的.
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |