栈为什么比堆的效率高

2013年4月21日 由 Creater 留言 »

1.栈是底层系统提供的数据结构,分配有专门的寄存器存放栈的地址,数据的入栈出栈都有专门的指令。

2.堆是由库提供,在底层的分配机制上进行了一些额外复杂的机制。比如根据算法来避免不连续空间的申请,避免碎片的产生等。相对效率就低了。

3.由于不停的new/delete,会造成内存碎片,也会导致内存利用率低与应用效率低(比如空间不够时,会查询可用空闲堆内存)。

广告位

发表评论

你必须 登陆 方可发表评论.