Wann ist es akzeptabel, die Garbage Collection manuell auszulösen?
Während ein manueller Anruf GC.Collect
im Allgemeinen nicht empfohlen wird, kann dies in einigen Fällen von Vorteil sein.
Dienst ausgesetzt:
Dienste, die zeitweise ausgeführt werden (Aufgaben in bestimmten Abständen ausführen), können von der erzwungenen Speicherbereinigung profitieren. Das Löschen ungenutzten Speichers vor längeren Leerlaufzeiten kann den Speicherbedarf eines Prozesses reduzieren. Dadurch wird sichergestellt, dass bei Inaktivität keine unnötigen Ressourcen zurückgehalten werden.
Großes Formular schließen:
Beim Schließen eines großen Formulars ist eine große Anzahl von UI-Steuerelementen für die Garbage Collection geeignet. Das manuelle Auslösen des Recyclings an dieser Stelle kann viel Speicher freigeben, was Benutzer aufgrund der natürlichen Pause beim Schließen des Formulars wahrscheinlich nicht bemerken.
Verbesserungen für .NET 4.5 und 4.6:
In .NET 4.5 bietet GCLatencyMode
die Option, in den Modus mit niedriger Latenz oder kontinuierlicher niedriger Latenz zu wechseln. Um diese Modi aufzurufen und zu verlassen, wird empfohlen, mit GC.Collect(2, GCCollectionMode.Forced)
eine vollständige Garbage Collection zu erzwingen.
.NET 4.6 führte die Methode GC.TryStartNoGCRegion
ein, die die Speicherbereinigung für einen bestimmten Zeitraum deaktiviert. Um eine effiziente Speicherverwaltung sicherzustellen, wird empfohlen, vor und nach dem Aufruf dieser Methode eine vollständige Speicherbereinigung durchzuführen.
Das obige ist der detaillierte Inhalt vonWann sollten Sie die Müllsammlung manuell auslösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!