【发布时间】:2013-05-20 15:46:36
【问题描述】:
假设我有两个完全独立的 .NET 应用程序,Foo.exe 和 Boo.exe,它们都使用位于 Foo 和 Boo 的 bin 文件夹中的同一个库 TestLib.dll(两个副本)。
.NET 会加载这两个 dll,浪费size_of_dll * 2 大小的 RAM,还是会检查强程序集名称、大小等...并仅加载和加载两个程序集之一?
【问题讨论】:
-
简而言之 - 是的。看看这个链接msdn.microsoft.com/en-us/library/windows/desktop/…
-
我不知道,如果 windows 不这样做(例如,对于它自己的签名程序集),但这样做会疯狂。即使您具有相同的名称、版本和大小,您仍然可以在来自不同来源、提供者或区域(或修补程序集)的两个程序集之间存在位差异。
-
程序集的大小与程序在运行时可以分配的内存量(最高 8Tb)相比是微不足道的。
-
No.. 我们的程序有总大小 > 400 Mb 的程序集,其中大部分现在用于不同的应用程序.. 所以用户会浪费大量的 RAM! 4aps * 300 Mb
-
举例说明我们如何浪费内存
标签: c# .net dll .net-assembly