从其他程序集加载类是否会有性能损失?

时间:2011-05-20 15:58:13

标签: .net asp.net performance assemblies

以下是该方案。我已经构建了一个用于执行存储过程的数据包装器类。我想在其他项目中使用这个类。众所周知,数据层代码通常必须尽快执行,以避免瓶颈。

所以我的问题是,如果我要在自己的程序集中构建我的数据类,这更容易分发给其他解决方案,这是否会为类本身造成任何类型的加载时间损失?另一种方法是将类文件复制并粘贴到每个项目中。

3 个答案:

答案 0 :(得分:2)

你应该注意到虽然加载你的程序集有一个非零(虽然很可能是微不足道的)成本,但几乎在所有情况下它每个AppDomain只发生一次,所以瓶颈不是一个问题。

答案 1 :(得分:1)

您意识到,整个框架也属于other类别。

我认为这里涉及的时间尺度并不重要,会对您的流程产生影响。

答案 2 :(得分:0)

当您需要来自另一个程序集的某个类型时,JIT会加载类型。 它首先加载程序集本身然后加载所有类型。

之后,类型在内存中,构造它们没有任何惩罚。

每个AppDomain都是如此。但你可能只使用一个。

因此,您所指的性能问题只会在宠物装配加载时发生。

如果您担心这可能会在不应该触发时触发,您可以选择提前预加载所需的所有程序集(link to one question of mine)。