malloc問題
(1)
- mallocで1バイトを確保すると、たいてい16バイトを消費する。
- これは32bitの場合。64bitの場合はもっと消費するかも。
- 割り当て域は8バイト単位に切り上げられて、ヘッダが4バイト以上あるから。
- つまり確保したい容量のなんと16倍を消費することになる。
- これがわかっていると、小さい領域を確保するためにmallocを使うのは嫌だなと思う。サイズが小さいときは何か工夫して、大きな領域を切り分けて使うなどを検討する。
(2)
- しかしそれはプログラムが複雑になるだけだ。サイズが大きくても小さくても同じようにmallocできたら素敵じゃないか。
- ということで、1バイトを要求したら1バイトしか消費しないmallocを作った。
こめんと欄
|