* malloc問題 -(by [[K]], 2017.10.29) ** (1) -mallocで1バイトを確保すると、たいてい16バイトを消費する。 --これは32bitの場合。64bitの場合はもっと消費するかも。 --割り当て域は8バイト単位に切り上げられて、ヘッダにサイズと次の領域へのポインタが入るから。 -つまり確保したい容量のなんと16倍を消費することになる。 -これがわかっていると、小さい領域を確保するためにmallocを使うのは嫌だなと思う。サイズが小さいときは何か工夫して、大きな領域を切り分けて使うなどを検討する。 ** (2) -しかしそれはプログラムが複雑になるだけだ。サイズが大きくても小さくても同じようにmallocできたら素敵じゃないか。 -ということで、1バイトを要求しても4バイトしか消費しないmallocを考えた。 -これだと効率はこうなる。 |要求サイズ|消費サイズ|効率| |RIGHT:1バイト|RIGHT:4バイト|25.0%| |RIGHT:5バイト|RIGHT:8バイト|62.5%| |RIGHT:9バイト|RIGHT:12バイト|75.0%| -要求メモリが1バイトのときに、もっと効率を上げることはできるのだけど、そこを頑張ったほうがいいのかどうかは謎だ。さすがに1バイトのmallocはそこまで頻度が高くないのではないか。 * こめんと欄 #comment