棧訪問(wèn)速度快還是堆


棧的增減只需要移動(dòng)棧頂寄存器。堆需要便歷鏈表,找到空的區(qū)間,可能還要處理內(nèi)存碎片。

棧是本著LIFO原則的存儲(chǔ)機(jī)制,尋址間距短,對(duì)棧數(shù)據(jù)的定位相對(duì)比較快速, 而堆則是隨機(jī)分配的空間,處理的數(shù)據(jù)比較多,無(wú)論如何,至少要兩次定位。

其次, 棧是由CPU提供指令支持的, 在指令的處理速度上, 對(duì)棧數(shù)據(jù)進(jìn)行處理的速度自然要優(yōu)于由操作系統(tǒng)支持的堆數(shù)據(jù)。

再者, 棧是在一級(jí)緩存中做緩存的, 而堆則是在二級(jí)緩存中, 兩者在硬件性能上差異巨大。棧很大機(jī)會(huì)會(huì)被虛擬機(jī)分配至物理機(jī)器的高速寄存器中存儲(chǔ)。

語(yǔ)言對(duì)棧的優(yōu)化支持要優(yōu)于對(duì)堆的支持。

堆分配的空間在邏輯地址上是連續(xù)的,但在物理地址上是不連續(xù)的。相鄰的兩個(gè)字節(jié)可能是在不同的物理分頁(yè)上;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容