2015-07-15 18 views
13

Die Node.js documentation on Buffer sagt:Wo speichert Node.js Puffer?

Rohdaten in Instanzen der Klasse Buffer gespeichert ist. A Buffer ähnelt einem Array von ganzen Zahlen, entspricht jedoch einer unbearbeiteten Speicherzuordnung außerhalb des V8-Heaps. A Buffer kann nicht in der Größe geändert werden.

Okay, so Puffer sind nicht in dem V8-Heap gespeichert, aber ... wo nicht Node.js sie tatsächlich gespeichert werden? Ich kann mir kaum vorstellen, dass es auf dem Stapel ist, oder?

Mit anderen Worten: Was genau macht

eine rohe Speicherzuweisung außerhalb des V8 Haufen

eigentlich?

+6

Vielleicht von "außerhalb des V8 heap" außerhalb des normalen Pool bedeutet für JavaScript-Objekte verwendet. Es könnte natürlich (über Low-Level "malloc()") im umgebenden Prozess zugeordnet werden. – Pointy

+2

ref link: https://github.com/joyent/node/blob/master/src/node_buffer.cc#L191 – Hacketo

+0

Um die Version des ref-Links zu beheben: https://github.com/joyent/node/blob /6036e4f5a833b27fb474f3bf891c405606fdce19/src/node_buffer.cc#L191 –

Antwort

-2

Obwohl ich ein Anfänger in Knoten bin, aber was ich verstehe, ist Raw Speicherzuordner es nur produzieren einen Block von Speicher, auf dem es Puffer-Objekt erstellt.Die Daten werden verloren, wie Sie den Knoten-Prozess zu töten.