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