Ist es sinnvoll Objekte zu löschen?
Tarquinio
- javascript
1 molily
Hallo Ihrs,
ich kenne mich leider nicht mit der Speicherverwaltung von JavaScript aus und ich frage mich ob es sinnvoll ist Objekte (per Prototype-Bibliothek erstellt) mit dem delete-Operator zu löschen wenn sie nicht mehr benötigt werden?
Und was passiert dabei genau? Wird nur die Referenz auf das Objekt gelöscht? Springt der Garbage Collector nur an wenn alle Referenzen auf ein Objekt gelöscht wurden oder auch ohne den expliziten Aufruf von "delete"?
Wäre nett wenn ihr mir helfen könntet. Ich bedanke mich schonmal im Vorraus dafür.
MfG
Tarquinio
ob es sinnvoll ist Objekte (per Prototype-Bibliothek erstellt) mit dem delete-Operator zu löschen wenn sie nicht mehr benötigt werden?
Ja, vor allem weil man je nach Programmierstil durch Closures die Arbeit des GCs erschwert.
Und was passiert dabei genau?
Das Objekt wird bei der nächsten Gelegenheit vom Garbage Collector aus dem Speicher gelöscht.
Wird nur die Referenz auf das Objekt gelöscht?
Wenn noch weitere Referenzen existieren, wird das Objekt selbst natürlich nicht gelöscht.
Springt der Garbage Collector nur an wenn alle Referenzen auf ein Objekt gelöscht wurden oder auch ohne den expliziten Aufruf von "delete"?
Das »oder« verstehe ich nicht.
Der GC springt auch ohne Aufruf von delete an. Eine lokale Variable z.B. wird automatisch gelöscht, wenn die Funktion abgelaufen ist (und sie nicht in einer Closure eingeschlossen ist). Wenn man Closures verwendet oder mit großen Datenmengen operiert, ist der Einsatz von delete jedoch sinnvoll, sonst läuft irgendwann der Speicher voll.
Mathias