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