相关疑难解决方法(0)

什么是AppDomain?

什么是AppDomain?AppDomains的好处是什么?为什么微软带来了AppDomains的概念,没有AppDomains会出现什么问题?

请详细说明.

.net c# appdomain

131
推荐指数
3
解决办法
8万
查看次数

是.net系统范围内的垃圾收集器还是应用程序范围内的垃圾收集器?

在与我的同事讨论期间,我怀疑.net中的垃圾收集器是在系统范围内还是在应用程序范围内工作.

意味着每个具有自己的GC的应用程序是否会影响系统性能?

我对此有点困惑.

.net c# garbage-collection

12
推荐指数
3
解决办法
2842
查看次数

AppDomains和GC堆

是否有单个GC堆过程以这样的方式进行分区,即每个应用程序域都可以访问特定分区?或者每个应用程序域都有单独的GC堆?我确定其他堆如HF堆,LF堆,存根堆,处理表等等......所有这些堆都是为每个应用域分别分配的?GC堆也会单独分配吗?

这可能是正确的,因为除非对象可序列化或实现为MarshalByRef,否则无法在AppDomains之间传递对象.我在想是否有与每个对象关联的AppDomainID和Object Header(Sync Block)存储有关AppDomainID的信息?

.net appdomain

6
推荐指数
1
解决办法
697
查看次数

为什么每个进程有一个 GC 和一个托管堆?

据我了解,在 .NET 中,每个进程有一次 GC,每个进程有一个托管堆(它分为 SOH 和 LOH)。

所以我对此有几个问题:

  1. 如果我们在一个进程中有几个应用程序域,那么每个域将在其他域之间共享堆。安全吗?这种域之间的分离是如何进行的?

  2. 当 GC 开始工作时,它会暂停工作线程。因此,如果一个应用程序域需要频繁启动 GC,则会影响其他根本不需要垃圾回收的域。再说一次,域之间的 0、1、2 代是否有任何分离,或者来自存储在同一 0 代区域中的不同域的所有 0 代对象是否有任何分离?

  3. 为什么 GC 和托管堆是按进程而不是按域实现的?

.net garbage-collection memory-management

5
推荐指数
0
解决办法
919
查看次数