AppDomains和GC堆

jag*_*ags 6 .net appdomain

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

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

Agh*_*oub 1

您有一个进程的堆,并且应用程序域共享该堆。

应用程序域是轻量级进程,充当进程中的隔离单元。