ByteString型
バイト列
1byteで済むので、その分 Text
よりメモリ効率が良い
matrix
ByteStringの7種類 | 正格 | 遅延 |
バイナリ | Data.ByteString | Data.ByteString.Lazy |
文字列 | Data.ByteString.Char8 | Data.ByteString.Lazy.Char8 |
eUTF-8 | Data.ByteString.UTF8 | Data.ByteString.Lazy.UTF8 | 上段のChar8のやつのサブセット的な |
メモリ効率がいい(?) | Data.ByteString.Short |
docsと3行
バイナリ
Strict
byte列の配列
Lazy
64kbのChunkに保存される
Chunk単位で評価される
64kbのData.ByteStrringのListのイメージ
文字列
Strict
Lazy
Strict
Lazy
メモリ効率がいい(?)
使用用途
ファイルの読み込み時
etc.
Data.ByteStringとData.ByteString.Char8とData.ByteString.UTF8は全て同じ型(Lazy版も同様)
コメント
sliceできる
ByteString
と表示されている型にも複数種類あるのね..

IDEのhintで ByteString
と表示されているもの同士も、出自が違えば同じものとして扱えない
Data.ByteString.Lazy.Internalとかなんなん
>普通に使う分にはいいんですが、短い文字列をたくさん作るとすぐにメモリが断片化することがよく知られています ref