作者caml (suitengu)
看板PLT
標題Re: [轉錄][閒聊] stack和heap的差別
時間Wed Aug 29 14:10:59 2007
heap的管理比stack復雜, 相應的heap也就比stack慢
另外heap的分配函數malloc, calloc是很expensive的, 因為要考慮alignment的問題
因此想讓program跑得快, 就不能全用heap
當然也有例外, man alloca一下你會發現alloca是在stack上動態分配內存
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.142.118.227
1F:推 mystea:聽起來很中肯! 但什麼是alignment的問題? 08/29 14:12
3F:推 abcdefghi:資料放在stack,cache hit rate比較高,讀寫速度會比較快, 08/29 16:14
4F:→ abcdefghi:把一些小變數放在stack,效率會比較好,像函數的return 08/29 16:16
5F:→ abcdefghi:address,另外,依不同PL對函數的定義不同,有些local變數 08/29 16:18
6F:→ abcdefghi:可以用stack來實作,有些則只能用heap來實作. stack本身 08/29 16:20
7F:→ abcdefghi:只要對stack pointer作加/減就可以完成配置,但heap為了 08/29 16:21
8F:→ abcdefghi:隨機管理大塊記憶體,則會使用比較繁雜的演算法. 08/29 16:24