生成大量“夭折”(在垃圾收集间隔期间从未升级到下一代)的临时对象(即临时结果)的开销是多少?我假设“new”操作非常便宜,因为它实际上只是一个指针增量。然而,处理这些临时“垃圾”的隐性成本是什么?

最佳答案

不是很多-垃圾收集器对gen0来说非常快。它还调整自己,根据gen0每次运行时的收集量调整gen0的大小。(如果成功地收集了大量数据,它将减少gen0的大小,以便下次早些时候收集,反之亦然。)
最终的测试是应用程序如何执行。perfmon在这里非常方便,它显示在gc中花费了多少时间,每一代有多少集合等等。

08-24 18:10