我的理解是,在服务器 GC 模式下,您可以为应用程序的每个处理器获得一个 GC 线程。但是,在查看转储文件时,我看到了不同的结果。
当我打开一个转储文件时,它显示了 4 个过程。
!eehheap -gc 命令提示相同。
当我运行 !threads -special 命令时,它显示了 8 个 GC 线程。为什么?
最佳答案
您有 4 个核心和 4 个堆(如转储中所示)。
每个核心都有一个 GC 线程(用于第 0 代和第 1 代)和一个用于第 2 代的后台 GC 线程。
总共8个线程。您可以在双核上看到 4 个线程的描述 on this page ,查找“服务器 GC:之前和之后”。
关于c# - 我应该有多少个 GC 线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28419780/