gpt4 book ai didi

c# - 未使用的属性会导致开销吗?

转载 作者:行者123 更新时间:2023-11-30 14:15:09 24 4
gpt4 key购买 nike

假设我们有一个带有大量冗余访问器的生成类。它们只是访问器,它们不是字段。他们不会在任何地方被调用。他们只是坐在那里,显得多余和丑陋。

例如:

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; }

我能想到的唯一开销是它会使 .DLL 变大。我希望运行时惩罚为零。

这会导致任何其他开销吗?即使是任何形式的微小开销?

最佳答案

它不太可能有任何可测量的运行时开销。无论如何,因为这是性能问题 - 测量您的使用情况,并在有疑问时针对您的情况做出决定。

未引用的方法不会被 JIT 编译,也不会导致直接的运行时开销。

该类的元数据将更大(以及您提到的程序集大小)。

如果在一些涉及大量反射的代码中使用该类,您可能会受到间接影响,而且如果代码重复反射同一个类,则它本身可能是错误的。

关于c# - 未使用的属性会导致开销吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10520628/

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