タグ

ブックマーク / note.crohaco.net (1)

  • Golangのバッファってよくできてるよな

    みんなのGoを読んでいて、バッファの取り扱いを理解できてないと感じたので 簡単にまとめてみました。 infoこの記事では chan のバッファリングについては取り扱いません。バッファとはそもそもバッファは何なのかといえば、なんらかの入出力の一部を一時的に保存する領域を指します。 この領域は、IOの回数を減らしてパフォーマンスを向上させますが、際限なく大きればいいというものでもありません。 すべてを読み込んでしまうと大きなファイルの場合、メモリを圧迫する恐れがあります。 そこで一定のサイズの領域、(例えば4KB とする)を確保し4KBずつ読み出してバッファに格納&コピー先のファイルに書き出す、 という操作を繰り返せば最大でも4KBしか消費されないのでメモリを圧迫する恐れがありません。 逆に小さすぎれば大量のIOが発生しものすごい時間がかかるかもしれません。 バッファサイズは省メモリとパフォー

    Golangのバッファってよくできてるよな
  • 1