2012-03-24 4 views
2

Ich habe eine Funktion zum vorzeitigen Löschen von Objekten geschrieben.der richtige Weg, um ein Objekt in einem Array für node.js zu löschen?

function add(variable, expireSecond){ 
    this.list[variable] = {"expireSecond": expireSecond, "addTime": (new Date().getTime())/1000}; 
} 

function deleteExpiredObject(){ 
    var currentTime = (new Date().getTime())/1000; 
    for (var key in this.list) { 
     var item = this.list[key]; 
     if (item.expireSecond + item.addTime < currentTime){ 
      delete this.list[key]; 
     } 
    } 
} 

Wenn ich es verwenden, habe ich versucht, Folgendes zu tun:

add(xxx[1], 300); 

Aber wenn ich deleteExpiredObject() genannt, so scheint es, dass der Speicher nicht frei ist, nachdem das Objekt abgelaufen ist. Liegt es an der Nicht-Null-Referenz des Objekts in xxx[1]? Wie löst man? Gibt es eine Bibliothek, die ich benutzen kann?

Danke!

+1

Ich nehme an, 'this.list' ist ein Objekt? Es scheint, dass Sie die Elemente mit einer Datenstruktur verfolgen und dann nur die Struktur für die Verfolgung löschen. Wahrscheinlich wollen Sie diese Schnittstelle 'set (Name, Wert, Ablaufzeit), var Wert = get (name)'. –

Antwort

1

Dies ist eher eine Javascript-Frage als direkt zu node.js gehörend. Löschen in Javascript wird verwendet, um Eigenschaften von einem Objekt zu entfernen. Wenn diese Eigenschaft auf ein Objekt verweist, wird das Objekt nicht gelöscht. Wenn es jedoch keine Referenzen mehr darauf gibt, sollte es beim nächsten Speicherbereinigungszyklus bereinigt werden.

Hier sind ein paar Fragen zu Javascript bezogen und die Lösch Schlüsselwort, das Sie nützlich sein können:

`new` without `delete` on same variable in Javascript

When should I use delete vs setting elements to null in JavaScript? (Geschlossen als Betrogene, hat aber gute Antworten)

Deleting Objects in JavaScript

+0

danke für deine antwort. Ich glaube, dass mein Code funktioniert, aber es scheint, dass der Prozess von nodejs mehr und mehr ram belegt, also bezweifle ich, ob es der Standardweg ist. –

Verwandte Themen