在.NET 中防止短時間內垃圾收集
在處理大數據的高效能應用程式中,垃圾收集(GC)可以引入關鍵時期的延誤。本文討論了暫時暫停 GC 並將其影響降至最低的策略。
整個程式的 GC 可以暫停嗎?
是的,.NET 4.6 引入了 GC.TryStartNoGCRegion 和 GC.EndNoGCRegion 方法。這些允許您創建一個不運行 GC 的「無 GC 區域」。
範例:
using System; using System.Runtime.CompilerServices; public class NoGCRegion { public static void RunNoGC(Action action) { GC.TryStartNoGCRegion(); action(); GC.EndNoGCRegion(); } }
使用GC.Collect()強制垃圾收集
是的,您可以使用強制垃圾收集GC.Collect(),但不保證GC-free期的持續時間。 GC 將運行,直到收集完所有符合條件的物件。
最小化垃圾收集
為了減少GC 的需要:
以上是我可以暫時暫停 .NET 中高效能應用程式的垃圾收集嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!