c# - 我应该有多少个 GC 线程?

标签 c# .net-4.0 garbage-collection

我的理解是,在服务器 GC 模式下,您可以为应用程序的每个处理器获得一个 GC 线程。但是,在查看转储文件时,我看到了不同的结果。

当我打开一个转储文件时,它显示了 4 个过程。 enter image description here

!eehheap -gc 命令提示相同。

enter image description here

当我运行 !threads -special 命令时,它显示了 8 个 GC 线程。为什么? enter image description here

最佳答案

您有 4 个核心和 4 个堆(如转储中所示)。

每个核心都有一个 GC 线程(用于第 0 代和第 1 代)和一个用于第 2 代的后台 GC 线程。

总共8个线程。您可以在双核上看到 4 个线程的描述 on this page ,查找“服务器 GC:之前和之后”。

关于c# - 我应该有多少个 GC 线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28419780/

相关文章:

c# - 如何在 ASP.NET Core MVC 中获取当前日期?

c# - 如何在 NLog.Config 中使用来自不同类的变量?

javascript - Javascript 中的 Monolithic God 对象是否存在性能问题?

c# - 解决C#内存泄漏的方法有哪些

带有递归的 C# 类

c# - 在 C# 中反转字符串的最佳方法

.net-4.0 - 为什么ContinueWhenAll 和ContinueWhenAny 具有不受支持的TaskContinuationOptions?

c# - 不确定如何在集合上运行Where来返回集合

c# - MMC 管理单元和 .Net 4.x

java - 如何优化 G1 的暂停时间