CLR中的确定性GC?

Day*_*One 5 c# clr garbage-collection

是否有任何CLR实现具有确定性垃圾收集?

MS CLR GC中的不确定性暂停会抑制.Net成为适合实时开发的环境.

Metronome GC和Java中的BEA JRockit是我所知道的两个确定性GC实现.

但是有任何.Net等价物吗?

谢谢

Ste*_*ven 5

没有办法让GC确定性,当然期望GC.Collect()使用计时器正好调用每一秒;-).

但是,GC确实包含一个通知机制(自.NET 3.5 SP1起),它允许您在第2代收集即将发生时收到通知.你可以在这里阅读它.

GC现在还包含多种延迟模式,可以防止任何GC收集发生.当然你应该非常小心,但对实时系统特别有用.你可以在这里阅读更多相关信息.

  • 我希望那句话结尾的笑容清楚表明我并不认真.但严重的是,每250毫秒调用一次`GC.Collect()`.是一个非常糟糕的主意.虽然以确定的间隔进行收集,但由于触发了许多第2代收集,因此性能会非常糟糕. (4认同)