GC.Collect() und seine angemessene Verwendung verstehen
Vom direkten Aufruf von GC.Collect()
in Ihrem Code wird generell abgeraten. Allerdings rechtfertigen bestimmte Situationen seinen Einsatz.
Zum Beispiel kann in Anwendungen mit zyklischen Ausführungsmustern (Aufgabe ausführen, Ruhezustand) die proaktive Einleitung der Speicherbereinigung Speicher freigeben, der vom inaktiven Prozess belegt ist, und so die Ressourcenverwaltung verbessern.
Ein weiteres gültiges Szenario ergibt sich, wenn eine erhebliche Anzahl von Objekten (insbesondere in den Generationen 1 und 2) zur Abholung bereitsteht. Strategische Speicherbereinigung, beispielsweise nach dem Schließen eines großen Formulars, minimiert Leistungsunterbrechungen und optimiert die Ressourcennutzung.
.NET 4.5 und spätere Versionen bieten spezifische GC-Modi (GCLatencyMode.LowLatency
und GCLatencyMode.SustainedLowLatency
). Beim Wechsel zwischen diesen Modi wird für einen optimalen Übergang eine vollständige Garbage Collection (GC.Collect(2, GCCollectionMode.Forced)
) empfohlen.
Darüber hinaus bieten .NET 4.6 und höher GC.TryStartNoGCRegion
, mit dem Sie einen Codeabschnitt ohne Garbage-Collection angeben können. Ben Watson von Microsoft empfiehlt eine vollständige GC sowohl vor als auch nach der Anwendung dieser Methode.
Das obige ist der detaillierte Inhalt vonWann sollten Sie gc.collect () verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!