不知道lz實(shí)現(xiàn)的內(nèi)存池的小對(duì)象的內(nèi)存大小界界限是多少?128字節(jié)嗎?
我讀過(guò)sgi stl 的內(nèi)存池,覺(jué)得非常短 ...
ydfgic 發(fā)表于 2011-08-26 11:24
現(xiàn)在覺(jué)得此類(lèi)普適性的內(nèi)存池簡(jiǎn)直一點(diǎn)用也沒(méi)有, sdi stl 的內(nèi)存池算法估計(jì)malloc/new 自己的實(shí)現(xiàn)就干了 ...
zylthinking 發(fā)表于 2011-08-26 12:02
此言差矣,sgi stl對(duì)小于128字節(jié)的小內(nèi)存是有很高效的內(nèi)存池算法的。
malloc 的效率低是公認(rèn)了的 ...
ydfgic 發(fā)表于 2011-08-26 13:09
回復(fù) zylthinking
你說(shuō)得兩點(diǎn)只說(shuō)對(duì)了一半。
sgi stl 的分配是按照 8字節(jié)為單位,圓整到8的倍數(shù) ...
ydfgic 發(fā)表于 2011-08-26 20:01
回復(fù) zylthinking
malloc的問(wèn)題是分配還是比較快,但是它的回收算法包含了合并內(nèi)存塊,是比較慢的,所以才有那么多自己實(shí)現(xiàn)的內(nèi)存池。
另外多線(xiàn)程環(huán)境是很慢(因?yàn)闊o(wú)緩存,一個(gè)大鎖進(jìn)行保護(hù))。可以看TCMALLOC的測(cè)試結(jié)果。
ydfgic 發(fā)表于 2011-08-26 20:01
回復(fù) zylthinking
你說(shuō)得兩點(diǎn)只說(shuō)對(duì)了一半。
sgi stl 的分配是按照 8字節(jié)為單位,圓整到8的倍數(shù) ...
ydfgic 發(fā)表于 2011-08-26 20:01
best fit 會(huì)合并內(nèi)存塊嗎? 有些拿不準(zhǔn)了。。。。。。如果那樣, 還best fit 什么啊, 直接挖chunk就行 ...
zylthinking 發(fā)表于 2011-08-27 00:19
best fit 會(huì)合并內(nèi)存塊嗎? 有些拿不準(zhǔn)了。。。。。。如果那樣, 還best fit 什么啊, 直接挖chunk就行 ...
zylthinking 發(fā)表于 2011-08-27 00:19
歡迎光臨 Chinaunix (http://www.72891.cn/) | Powered by Discuz! X3.2 |