gpt4 book ai didi

.net - .NET 垃圾收集器线程数

转载 作者:行者123 更新时间:2023-12-02 07:46:10 25 4
gpt4 key购买 nike

在任何给定时间运行了多少个?是整个框架一个,还是每个 .NET 托管进程一个?当物理内存充足时,假设没有事件的 GC 线程是否正确?

最佳答案

.NET垃圾回收有两种模式,服务器和工作站。对于工作站,每个 .NET 进程将有一个垃圾收集器线程。如果您正在运行服务器垃圾收集模式,则每个进程和处理器将有一个垃圾收集器线程。因此,如果您有一个在 4 核 CPU 上作为服务器运行的 .NET 进程,您将有 4 个垃圾收集器线程。

此外,对于 .NET 4,存在一种新的“后台垃圾回收”模式。它将同时收集第 0 代和第 1 代中的项目。

即使您有足够的物理内存,也可能会发生垃圾回收。 .NET 将以 block 的形式为其堆分配内存。一般来说,会发生这样的事情:当需要 new 内存时,.NET 将尝试在它的堆上找到一 block 内存,以适应所需的内存块。如果不成功,GC 将运行以尝试收集任何不需要的对象。仅当这没有释放足够的内存时,才会从底层操作系统为堆分配一个新的内存块。

详细信息在 MSDN 文章中,Fundamentals of Garbage Collection .

综上所述,我非常同意 one of the other answers关于这个问题:不要对GC做任何假设。它应该与您的应用程序如何分配和收集内存无关。

关于.net - .NET 垃圾收集器线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6857375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com