malloc問題

  • (by K, 2017.10.29)

(1)

  • mallocで1バイトを確保すると、たいてい16バイトを消費する。
    • これは32bitの場合。64bitの場合はもっと消費するかも。
    • 割り当て域は8バイト単位に切り上げられて、ヘッダが4バイト以上あるから。
  • つまり確保したい容量のなんと16倍を消費することになる。
  • これがわかっていると、小さい領域を確保するためにmallocを使うのは嫌だなと思う。サイズが小さいときは何か工夫して、大きな領域を切り分けて使うなどを検討する。

(2)

  • しかしそれはプログラムが複雑になるだけだ。サイズが大きくても小さくても同じようにmallocできたら素敵じゃないか。
  • ということで、1バイトを要求したら1バイトしか消費しないmallocを作った。

こめんと欄


コメントお名前NameLink

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-30 (月) 22:39:02 (2368d)