Re: [轉錄][閒聊] stack和heap的差別

看板PLT (程式語言與理論)作者 (suitengu)時間17年前 (2007/08/29 14:11), 編輯推噓3(305)
留言8則, 3人參與, 最新討論串2/3 (看更多)
heap的管理比stack復雜, 相應的heap也就比stack慢 另外heap的分配函數malloc, calloc是很expensive的, 因為要考慮alignment的問題 因此想讓program跑得快, 就不能全用heap 當然也有例外, man alloca一下你會發現alloca是在stack上動態分配內存 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.142.118.227

08/29 14:12, , 1F
聽起來很中肯! 但什麼是alignment的問題?
08/29 14:12, 1F

08/29 16:14, , 3F
資料放在stack,cache hit rate比較高,讀寫速度會比較快,
08/29 16:14, 3F

08/29 16:16, , 4F
把一些小變數放在stack,效率會比較好,像函數的return
08/29 16:16, 4F

08/29 16:18, , 5F
address,另外,依不同PL對函數的定義不同,有些local變數
08/29 16:18, 5F

08/29 16:20, , 6F
可以用stack來實作,有些則只能用heap來實作. stack本身
08/29 16:20, 6F

08/29 16:21, , 7F
只要對stack pointer作加/減就可以完成配置,但heap為了
08/29 16:21, 7F

08/29 16:24, , 8F
隨機管理大塊記憶體,則會使用比較繁雜的演算法.
08/29 16:24, 8F
文章代碼(AID): #16rGtsUB (PLT)
文章代碼(AID): #16rGtsUB (PLT)