mr.*_*r.b 7 .net memory-management
我正在开发一个应用程序套件,它包含几个用户可以根据需要运行的应用程序(它们可以同时运行,或者只运行几个......).
我关心的是每个进程的物理内存占用,如任务管理器所示.
我知道框架在窗帘后面进行内存管理,因为它为某些与我的应用程序没有直接关系的东西投入了部分内存.
这个问题. 当有多个进程同时运行时,.NET Framework是否有某种方法可以最小化它运行的进程的内存占用量?(Noobish think ahead)就像,如果System.dll已经被一个进程加载,框架是否为每个进程加载它,或者它有某种方式在进程之间共享它?
我绝不会努力编写尽可能小的(资源方面的)应用程序(如果我是,我可能不会首先使用.NET Framework),但如果有什么我可以做一些关于 - 使用资源,我想了解它.
小智 5
当NGEN用于预JIT程序集时,它以这样的方式完成:如果将相同的程序集加载到多个进程中,则可以在它们之间共享可执行代码(否则每个进程必须具有原始IL和JIT编译的代码).
框架中的大多数(全部?)基础库是部分安装框架时编译的NGEN(也是为了减少.NET应用程序的初始启动时间)
Rico是这方面无可争议的专家:http://blogs.msdn.com/b/ricom/archive/2004/10/18/244242.aspx
此外,许多页面可以跨进程共享,因此我们希望鼓励将可共享代码放入ngen'd图像中 - 无法共享jitted代码.
归档时间: |
|
查看次数: |
338 次 |
最近记录: |