Angenommen, ich habe etwas asm.js Code, wahrscheinlich von emscripten erstellt. Angenommen, es hat eine ziemlich große, dem Heap zugeordnete Struktur, die von einer asm.js-Funktion als Zeiger zurückgegeben wird, der von einer JavaScript-Bibliothek aufgegriffen wird, um sie in ein nettes JavaScript-Objekt einzubetten. Gut so weit.Finalizer für JavaScript-Objekte
Aber was passiert, wenn das Objekt den Rahmen sprengt und Müll gesammelt wird. Im Moment hat der asm.js-Code keine Möglichkeit, davon zu wissen, so dass der Speicher der Struktur zugewiesen bleibt, was zu einem Speicherleck führt.
Gibt es eine Möglichkeit, ein JavaScript-Objekt aus JavaScript in einen Finalizer einzufügen?
Eine solche Finalizerthread verwendet werden, um den Speicher in asm.js freizugeben, so dass die Speicherverlust zu vermeiden. Bis jetzt konnte ich keinen dokumentierten, also tragbaren Weg finden, um dies zu erreichen, aber vielleicht habe ich an den falschen Stellen gesucht.
Ich denke, Sie sollten asm.js nicht mit JavaScript mischen. –
mögliches Duplikat von [Wann sind JavaScript-Objekte zerstört?] (Http://stackoverflow.com/questions/10112670/when-are-javascript-objects-destroyed) – user
@ user3075942: Nicht wirklich: Diese Frage betrifft die * wann * während mir die Zeit egal ist, solange ich von der Veranstaltung benachrichtigt werde. Java hat Garbage Collection und Finalizer, und ich hoffte auf etwas ähnliches in javaScript. – MvG