39242


**「ArrayBuffer」について調べているのですが、基本的な用語の意味が分からないので、質問します。**

* * *

**Q1.「メモリ上に確保したバッファ領域」という表現について**  
・「メモリ」と「バッファ」は何が違うのでしょうか？  
・RAM上にある「情報を一時保存する記憶領域または装置」が「メモリ」？  
・「バッファ」は「情報を一時保存する記憶領域」でRAM上にあるとは限らない？  
・「バッファ」は必ず「メモリ」に確保される？

* * *

**Q2.バッファメモリ**  
・これは「メモリ」と同義ですか？  
・それともここら辺りについて明確な定義はなくて文脈に応じて適宜判断するのでしょうか？

* * *

**Q3.下記表現で合っていますか？**  
・「バイナリデータ」を「メモリ上に確保したバッファ領域」へ保存  
・「メモリ上に確保したバッファ領域」より「バイナリデータ」を取得


CC BY-SA 3.0
2017-11-02T01:01:52.387
39226
2017-11-07T03:21:34.923
7886
question
javascript
「メモリ」と「バッファ」の違いについて


用語の一般論であると解釈します。

英語の buffer は、名詞なら緩衝装置、動詞なら緩和する、と訳せます。(ゲーム用語でバフ、デバフというのもこの単語から来ています。英語の buff
はまったく違う意味なので注意）

コンピュータの世界では「遅い装置と早い装置の間に入って速度差を吸収するための何か」と思えばよいです。遅い装置の例としてはハードディスク、早い装置の例としては
CPU が挙げられるでしょう。ハードディスクからのデータが一式揃うまで CPU
は他の作業をし、揃ったところで一気に処理すると効率が良いことになります。なのでバッファという用語は「データが揃っていない状態が普通にある」というニュアンスを含んでいます。

A1.  
・緩衝装置ならバッファですから、ハードウエアなバッファも当然あります。例えば USB では通信データをハードウエア FIFO
に格納するのが一般的で、これもバッファと言っていいでしょう。  
・ソフトウエアでバッファを作るのであれば RAM 上に作ることになるでしょう。  
・一般的に「メモリ」とはアドレス付けできる記憶装置のことを言います。  
電源を切っても消えない代わりに書き込みに特別な手順が必要な Flash-ROM  
高速に読み書きできる代わりに電源を切ると消えてしまう D-RAM  
超高速な代わりに超お高い、電源を切ると消える S-RAM  
つまり RAM というとメモリの一種です。

A2.  
・バッファとして使うことにした記憶装置の一部をバッファメモリと呼ぶのでしょう。  
文脈依存です。

A3.  
・最終的にはその「データ」をハードディスクや画面に出力したいのですよね？  
あるいはディスクやネットワークから取得したいんですよね？  
バッファという用語は「途中に入るもの」ですから、「要求定義」のレベルであればその文言はちょっと／かなり変です。

・ソフトウエアというか具体的なコードを書く上ではそういう言い方するかもしれません。  
\- データをバッファに読むルーチン、があって  
\- バッファ上のデータを出力するルーチン、もある  
\- バッファ上でソートするルーチン、を今作ろうとしている  
という状況ならそういう言い方するのもありです。


CC BY-SA 3.0
2017-11-02T06:10:20.257
39242
2017-11-02T06:10:20.257
8589
39226
answer


A1  
ゲームでの「バッファ」の例  
・フロントバッファ：実際に現在画面に表示されている内容が保持されている場所  
・バックバッファ：次の描画内容を作成する場所  
・Zバッファ（深度バッファ）：各ピクセルの前後情報成分  
（＝特定用途のために確保され運用される一時データ領域）

「メモリ」と呼ばれた場合は、装置としてのメモリのニュアンスになり  
「バッファ」と呼ばれた場合は、  
特定の（ロジック水準）用途に確保された（頻繁に書き換えの起こる一時）領域の  
ニュアンスが強いです。  
ただし、文脈依存なので、気分で読んでください。

A2  
メモリは、様々な用途を目的としてプログラムによって確保されます。  
・プログラムロード水準なら、スタック領域、ヒープ領域、メソッドエリアなど  
バッファメモリは、何らかのバッファを目的として使用されるメモリといったニュアンスです。

A3  
バイナリデータがプログラムコードのことであれば、  
上記のようにより適切な用語が存在するので、ややナンセンスですが、間違ってはいません。


CC BY-SA 3.0
2017-11-07T03:21:34.923
39362
2017-11-07T03:21:34.923
25396
39226
answer