了解 GC.Collect() 及其適當用途
通常不鼓勵在程式碼中直接呼叫 GC.Collect()
。 然而,特定的情況證明它的使用是合理的。
例如,在具有循環執行模式(執行任務、睡眠)的應用程式中,主動啟動垃圾收集可以釋放非活動進程佔用的內存,從而改善資源管理。
當大量物件(特別是第 1 代和第 2 代)準備好收集時,會出現另一個有效場景。 策略性垃圾收集(例如關閉大型表單後)可最大限度地減少效能中斷並優化資源使用。
.NET 4.5 及更高版本提供特定的 GC 模式(GCLatencyMode.LowLatency
和 GCLatencyMode.SustainedLowLatency
)。 在這些模式之間切換時,建議進行完整垃圾收集 (GC.Collect(2, GCCollectionMode.Forced)
) 以獲得最佳轉換。
此外,.NET 4.6 及更高版本提供 GC.TryStartNoGCRegion
,讓您指定無垃圾收集程式碼部分。 Microsoft 的 Ben Watson 建議在使用此方法之前和之後進行完整的 GC。
以上是什麼時候應該使用 GC.Collect()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!