內(nèi)存分配的兩種方式
UNIX System V的malloc使用的是 first fit 為此 我一直覺得很奇怪 為啥 為啥 有best不用 為啥要用那個first 奇怪
為此我傻瓜了好久
今天 項目空閑時 想明白了 呵呵
因為 我們不一定能找到最適合的大小的內(nèi)存 可能每次還都是會有些碎片的
如果使用best fit 萬一每次都沒有找到的話 那么每次產(chǎn)生的碎片都是最小的 這樣的碎片可能對以后都沒有什么用處了
而如果使用first fit 就不會每次都產(chǎn)生最小的碎片 而是產(chǎn)生的碎片可能比較大 下次申請的時候 可能這么段剛好給它用了 完美
而且還有效率的考慮 如果4G的內(nèi)存 每次分配都遍歷一次 那么多次分配 速度可能就太差了 而first就沒有這個問題
UNIX System V的malloc使用的是 first fit 為此 我一直覺得很奇怪 為啥 為啥 有best不用 為啥要用那個first 奇怪
為此我傻瓜了好久
今天 項目空閑時 想明白了 呵呵
因為 我們不一定能找到最適合的大小的內(nèi)存 可能每次還都是會有些碎片的
如果使用best fit 萬一每次都沒有找到的話 那么每次產(chǎn)生的碎片都是最小的 這樣的碎片可能對以后都沒有什么用處了
而如果使用first fit 就不會每次都產(chǎn)生最小的碎片 而是產(chǎn)生的碎片可能比較大 下次申請的時候 可能這么段剛好給它用了 完美
而且還有效率的考慮 如果4G的內(nèi)存 每次分配都遍歷一次 那么多次分配 速度可能就太差了 而first就沒有這個問題