【发布时间】:2012-11-05 06:25:59
【问题描述】:
我正在进行的项目将为大量类生成代码 - 预计会有数百到数千个。 在生成时不知道这些类中有多少会被实际访问。
生成的类可以 (1) 全部存在于单个程序集(或可能是少数程序集)中,该程序集将在脚趾消耗过程开始时加载。
...或 (2) 我可以为 each 类生成单个程序集,就像 Java 将每个类编译为单个 *.class 二进制文件一样,然后提出一种机制来按需加载程序集。
问题:哪种情况会产生更好的(内存和时间)性能?
我的直觉是,对于情况 (1),加载时间和使用的内存与构成单个整体程序集的类的数量成正比。 OTOH,案例 (2) 有其并发症。
如果您知道与加载程序集的内部相关的任何资源,尤其是调用了哪些代码(如果有的话!?)以及分配了哪些内存(为新加载的程序集记账),请分享。
【问题讨论】:
-
您是否尝试检查性能计数器和分析?乍一看,我会说第一个更好,因为每个程序集的开销在加载和内存消耗方面都不小。
标签: .net performance assemblies .net-assembly