2015-05-19 9 views
6

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

+0

Erhalte das gleiche Ergebnis auf OSX mit iojs v2.2.1 –

Antwort

1

Ist Gibt es einen guten Grund für den Unterschied? Oder sollte ich einen Fehlerbericht schreiben?

Ich bezweifle, es gibt einen guten Grund dafür, sollten Sie file a bug.