Betrachten Sie die folgenden zwei Programme:Warum hängt der Knoten manchmal beim Zuweisen von Int8Array?
// works.js
var buffer = new ArrayBuffer(16777216);
var HEAP8 = new Int8Array(buffer);
und
// fails.js
var HEAP8;
var buffer = new ArrayBuffer(16777216);
HEAP8 = new Int8Array(buffer);
Run node
dann .load works.js
eingeben. Alles scheint glücklich zu sein. Jetzt beenden Sie node
.
Führen Sie erneut node
aus und geben Sie .load fails.js
ein.
Auf meiner Maschine laden fails.js
interaktiv führt die node
Prozess über 1 GB RAM und 100% CPU verbrauchen, und die letzte Anweisung blockiert den Interpreter für immer. works.js
läuft gerade und kehrt wie erwartet zurück.
Gibt es einen guten Grund für den Unterschied? Oder sollte ich einen Fehlerbericht schreiben?
Merkwürdigerweise entweder Skript ausgeführt wird direkt von der Kommandozeile funktioniert:
node works.js # exits normally
node fails.js # exits normally
UPDATE: Ich verwende Knoten 0.12.0 auf OS X 10.9.5
Erhalte das gleiche Ergebnis auf OSX mit iojs v2.2.1 –