当前位置:  开发笔记 > 后端 > 正文

.NET垃圾收集器 - 终端服务

如何解决《.NET垃圾收集器-终端服务》经验,为你挑选了1个好方法。

在那儿

一个垃圾收集器用于整个系统

登录的每个用户的一个垃圾收集器实例

每个运行的.NET应用程序的一个垃圾收集器

或者不是上述(请解释)?



1> EnocNRoll - ..:

每个.NET进程都有一个GC线程,因此每个进程有一个堆.但是,对象将映射到各个AppDomain,以提供进程隔离优势.虽然进程中可以有多个AppDomain,但默认情况下每个进程只有一个.

终端服务:

这意味着,对于终端服务环境中的应用程序(称为MyApp.exe)的典型部署,用户正在运行的.NET应用程序的不同实例将分别具有独立堆和活动内存管理.更重要的是,终端服务会话本身代表了各种内存边界,因为当用户注销时会卸载会话(http://msdn.microsoft.com/en-us/library/aa383496(VS.85).aspx) .

下面说明了如何为每个终端服务会话加载MyApp.exe,并解释了一些可能影响会话内存可用性和性能的设置:http://blogs.technet.com/askperf/archive/2007/07/ 24 /会话的桌面和窗口,stations.aspx

深层细节:

有关更多详细信息,请参阅Jon Skeet的回复:终结器线程的范围是什么 - 每个应用程序域或每个进程?

深奥细节:

此外,以下文章解释了Microsoft如何允许并行CLR实例,以便可以同时运行多个版本的CLR.这适用于Silverlight:http://msdn.microsoft.com/en-us/magazine/cc721609.aspx

此外,似乎所有未来版本的CLR都支持此功能:http://blogs.msdn.com/davbr/archive/2008/11/10/new-stuff-in-profiling-api -用于-即将-CLR-4-0.aspx

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