2012-04-05 2 views
0

Es ist sichergestellt, dass Garbage Collector alle unerwünschten und unbenutzten Objekte zerstört, was, wenn wir die Objekte manuell aufheben. Liste < String> = null, bewirkt diese Aktion einen negativen oder positiven Leistungseffekt?Resource Handling Practice

Ich bin auf Java. Danke.

Antwort

1

Nicht ein Experte für Details der Speicherbehandlung, aber ich kann teilen, was ich weiß. GC wird alles sammeln, was nicht benutzt wird. Wenn Sie also die letzte Referenz auf ein Objekt eliminieren (indem Sie explizit aufheben), markieren Sie es für die Garbage Collection. Dies garantiert nicht, dass es sofort abgeholt wird.

Sie können GC explizit versuchen und aufrufen, aber Sie werden viele Leute sehen, die dagegen raten. Mein Verständnis ist, dass der Ruf nach GC bestenfalls unzuverlässig ist. Der springende Punkt bei GC und Java ist, dass Sie sich als Programmierer nicht viel Gedanken über die Speicherzuweisung machen sollten. Was die Leistung angeht, sollten Sie die GC-Aktivität nicht bemerken, es sei denn, Sie haben enge Beschränkungen für den Heap-Speicher.

1

Mit der Garbage Collection erfasst Java den von herumlungernden Objekten belegten Speicherplatz. Auf diese Weise stellt [Java] sicher, dass Ihre Anwendung nie über genügend Arbeitsspeicher verfügt (obwohl wir nicht sicher sein können, dass das Programm jemals über genügend Arbeitsspeicher verfügen wird).

Es wird empfohlen, es auf JVM zu belassen.

lesen bezogen werden: Does setting Java objects to null do anything anymore?

1

Explicit null ing macht wenig oder keinen Unterschied. In der Regel kann der GC zuverlässig erkennen, wenn ein Objekt nicht mehr erreicht werden kann und somit GCd sein.

Insbesondere null Ing Stack (d. H. Innerhalb Methoden) Variablen hilft absolut nichts. Es ist trivial, wenn die Laufzeit automatisch erkennt, wann sie benötigt wird und wann nicht. null ing heap (d. H. Innerhalb von Klassen) Variablen könnte in einigen seltenen Fällen helfen, aber das ist eine seltene Ausnahme und wahrscheinlich mehr Schaden (in Code Lesbarkeit/Wartbarkeit) als gut.

Beachten Sie auch, dass null ing nicht Garantie wenn oder wann ein Objekt GCD sein.