Ich komme aus der Java-Welt, und es gibt viele Implementierungen von (lokalen) In-Memory-Caches. Außerdem gibt es in der Java-Welt SoftReference und WeakReference , und sie sind per Definition ideal für die Cache-Implementierung (s ).
Ich weiß, dass JavaScript nichts Ähnliches hat, also frage ich mich, ob es möglich ist, eine Cache-Funktionalität zu haben, die (alle) zwischengespeicherte Objekte löscht / freigibt, wenn "geringer Speicherdruck" vorliegt. Bisher kenne ich das lru-cache -Modul, aber die Implementierung hält Objekte bis zu einer gewissen Anzahl / Größe, was nett ist , aber nicht gut genug, weil Sie natürlich vom Cache erwarten würden, Objekte freizugeben, wenn nicht genügend Speicher vorhanden ist.
Ist es sogar möglich, ein Ereignis in NodeJS vom System zu bekommen, wenn der Speicher knapp ist?
Oder vielleicht eine Bibliothek, die ein Ereignis auslösen könnte, etwa so:
%Vor%Bisher habe ich npm memwatch und npm usage Module, aber immer noch nicht in der Lage, all diese Teile miteinander zu kombinieren.
Es gibt noch keine WeakReferences oder ähnliche in JS, aber sie sollten JS6 (Versionsliste) .
Bis jetzt könntest du etwas bauen, das nur alle paar Sekunden überprüft, ob der Speicher leer ist und deine Karte aufräumt.
setInterval(function() {
/* check if memory low and do something */
}, 2000).unref();
Tags und Links memory node.js caching weak-references low-memory