Sunday, March 26, 2006

malloc, realloc の効率的な使い方

malloc() でメモリを確保する場合、2^n 単位で確保するとよい。
無駄になるメモリはたかだか50%だし、変な断片化も最小化される。

とのことだ。断片化については数学的な議論をして確認したいところだ。

また、realloc() についても、以前に割り当てられていたサイズの2倍のサイズを要求すると、log(n) 回より多く realloc() を呼ぶこともないし、巨大な文字列に大しても適度なパフォーマンスが得られるし、無駄になるメモリもたかだか50%で済む。

とのことだ。これも数学的に確認したいところだ。

以上は、『Joel on Software』の第2章で触れられていたことだ。

No comments: