Bla*_*man 27 .net performance assemblies
.net程序集的大小是否会影响性能?Windows窗体/ Web表单项目中的程序集数量如何?
Dan*_*ard 34
来自Microsoft的模式和实践提高.NET应用程序性能和可伸缩性第5章:
更喜欢单个大型装配而不是多个较小的装配
为了帮助减少应用程序的工作集,您应该更喜欢单个较大的程序集而不是多个较小的程序集.如果您有多个总是一起加载的程序集,则应将它们组合在一起并创建一个程序集.
与多个较小的程序集相关的开销可归结为以下几点:
因为您只为程序访问的内存页付费,所以较大的程序集为Native Image Generator实用程序(Ngen.exe)提供了更大的机会来优化它生成的本机映像.更好的图像布局意味着可以更加密集地布置必要的数据,这反过来意味着与多个组件中布置的相同代码相比,完成工作所需的整体页面更少.
有时你无法避免分裂组件; 例如,出于版本控制和部署原因.如果需要单独运输类型,则可能需要单独的组件.
我从未遇到过可追踪到程序集大小或数量的重大性能损失。我追踪到的绝大多数重大性能问题都是算法缺陷造成的。
正如 Jon Skeet 所说,由于启动时的分辨率,可能会有一些小影响。lassevk 也有一个关于通过反射动态解析程序集的观点。但是,在整个程序过程中,这些都不会超过一次影响性能,并且在正常情况下,除非您在某些非常严格的性能限制下工作,否则可能不会对性能造成重大影响。
也许关于这个问题的一些额外的背景会有所帮助。例如,您问这个问题是因为您有一个包含大量大型程序集的软件,并且您正在尝试加快速度?
归档时间: |
|
查看次数: |
5521 次 |
最近记录: |