当前位置:  开发笔记 > 小程序 > 正文

.NET程序集大小会影响性能吗?

如何解决《.NET程序集大小会影响性能吗?》经验,为你挑选了3个好方法。

.net程序集的大小是否会影响性能?Windows窗体/ Web表单项目中的程序集数量如何?



1> Dan Blanchar..:

来自Microsoft的模式和实践提高.NET应用程序性能和可伸缩性第5章:

更喜欢单个大型装配而不是多个较小的装配

为了帮助减少应用程序的工作集,您应该更喜欢单个较大的程序集而不是多个较小的程序集.如果您有多个总是一起加载的程序集,则应将它们组合在一起并创建一个程序集.

与多个较小的程序集相关的开销可归结为以下几点:

加载较小程序集的元数据的成本.

触摸CLR中预编译图像中的各种内存页面以加载程序集(如果它是使用Ngen.exe预编译的).

JIT编译时间.

安全检查.

因为您只为程序访问的内存页付费,所以较大的程序集为Native Image Generator实用程序(Ngen.exe)提供了更大的机会来优化它生成的本机映像.更好的图像布局意味着可以更加密集地布置必要的数据,这反过来意味着与多个组件中布置的相同代码相比,完成工作所需的整体页面更少.

有时你无法避免分裂组件; 例如,出于版本控制和部署原因.如果需要单独运输类型,则可能需要单独的组件.



2> Jon Skeet..:

好吧,每次加载一个程序集时,由于分辨率损失会有一些命中 - 找到正确的文件,可能会验证版本号等.这可能主要是在启动时.

但是,我认为它不会显着影响"稳态"性能.



3> Anthony Mast..:

紧凑的框架DLL将始终加载到64 kb的最小内存空间,无论它有多小.因此,加载四个独立的10 kb CF DLL将在设备上花费256 kb.如果你将它们组合在一起(ILMerge),它只会花费你64kb的内存.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有