web-dev-qa-db-ja.com

Node.jsのバッファとは何ですか?

Bufferクラスに関するNode.jsのドキュメント で読むことができるように、バッファ

整数の配列に似ていますが、V8ヒープ外の未加工メモリ割り当てに対応しています。

ここまでは順調ですね。

今私を困惑させているのは、技術的に言えばバッファが何であるかという問題です。特定のエンコーディングを使用して文字列を作成および文字列に変換するための追加の関数がいくつかある配列ですか?

それとも「もっと」ありますか?

40
Golo Roden

バッファは、C/C++の場合と同様に、メモリのチャンクです。このメモリは、さまざまな長さの整数または浮動小数点数の配列、またはバイナリ文字列として解釈できます。配列などの高レベルのデータ構造とは異なり、バッファはサイズ変更できません。

おおよそ次のように対応します。

  • char*またはchar[] C/C++の場合
  • byte[] in Java
  • Pythonの変更可能なbytesまたはサイズ変更不可のbytearray
  • PHPの文字列が変更可能である場合
34
phihag

BUFFERは、ある場所から別の場所に移動されるデータを一時的に保持する場所です。

バッファとは何かを理解するには、コンピュータがどのように処理するかを知る必要があります。下の表をご覧ください。

概念は、Youtubeビデオを見ている場合のように、ビデオ全体をダウンロードせずにビデオを見始めることができます。インターネットの速度が遅すぎる場合は、「バッファリング」と表示されます。これは、そのビデオを見続けるためにコンピュータがデータを収集しようとしていることを意味します。

14
Wayne Chiu

http://nodejitsu.com/ ...からの説明.

バッファはノードのバッファクラスのインスタンスであり、生のバイナリデータを処理するように設計されています。各バッファは、V8の外部に割り当てられたrawメモリに対応しています。バッファは、整数の配列のように機能しますが、サイズ変更できず、特にバイナリデータ専用の一連のメソッドがあります。さらに、バッファ内の「整数」はそれぞれ1バイトを表すため、0から255(2 ^ 8-1)までの値に制限されます。

続きを読む: Node.jsのバッファ

6
Ian Atkin