【发布时间】:2011-05-23 03:45:19
【问题描述】:
这里是场景。我已经构建了一个用于执行存储过程的数据包装类。我想在其他项目中使用这个类。众所周知,通常要求数据层代码应尽快执行以避免瓶颈。
所以我的问题是,如果我要在自己的程序集中构建我的数据类,这样更容易分发到其他解决方案,这是否会对类本身造成任何类型的加载时间损失?另一种选择是将类文件复制并粘贴到每个项目中。
【问题讨论】:
标签: .net asp.net performance assemblies
这里是场景。我已经构建了一个用于执行存储过程的数据包装类。我想在其他项目中使用这个类。众所周知,通常要求数据层代码应尽快执行以避免瓶颈。
所以我的问题是,如果我要在自己的程序集中构建我的数据类,这样更容易分发到其他解决方案,这是否会对类本身造成任何类型的加载时间损失?另一种选择是将类文件复制并粘贴到每个项目中。
【问题讨论】:
标签: .net asp.net performance assemblies
您应该注意,虽然与加载程序集相关的成本不为零(尽管可能微不足道),但在几乎所有情况下,每个 AppDomain 仅发生一次,因此瓶颈不是问题。
【讨论】:
您知道,整个框架也属于other 程序集类别。
我认为这里涉及的时间尺度并不重要,并且会影响您的流程。
【讨论】:
当您需要来自另一个程序集的某些类型时,JIT 会加载类型。 它首先加载程序集本身,然后加载包含的所有类型。
之后类型在内存中,构造它们就不会受到惩罚。
对于每个 AppDomain,所有这些都是正确的。但您可能只使用了一个。
因此,您所指的性能问题只能在宠物组件加载后发生。
如果您担心这可能会在不应该触发时触发,您可以选择提前预加载您需要的所有程序集 (link to one question of mine)。
【讨论】: