我最近尝试用Java和.Net读取垃圾收集算法。到目前为止,我发现java在其收集器中使用Mark和Sweep作为算法。
.Net在所有几代人中都使用Mark和扫描吗?
微软是如何从并发G0,G1收集器,用G @ collector运行SERIALLY,到一个名为BACKGROUND GC的东西,其中一切都是并行的?
提前感谢您的回答。
答案 0 :(得分:1)
.NET GC是一个标记和清除垃圾收集器。 背景GC意味着您可以在应用程序运行时执行Gen2 GC。如果您的应用程序是分配密集型的,并且后台GC无法释放足够的空间用于新分配,则BGC收集器将停止,并使用stop-the-world收集器执行完整的Gen2 GC(这可能导致压缩堆或扩展堆)
希望这有帮助