作者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