首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

堆跟栈速度比较

2012-11-09 
堆和栈速度比较至于堆和栈哪个更快,从两方面来考虑:???? 1.分配和释放,堆在分配和释放时都要调用函数(MALL

堆和栈速度比较

至于堆和栈哪个更快,从两方面来考虑:

???? 1.分配和释放,堆在分配和释放时都要调用函数(MALLOC,FREE),比如分配时会到堆空间去寻找足够大小的空间(因为多次分配释放后会造成空洞),这些都会花费一定的时间,具体可以看看MALLOC和FREE的源代码,他们做了很多额外的工作,而栈却不需要这些。

???? 2.访问时间,访问堆的一个具体单元,需要两次访问内存,第一次得取得指针,第二次才是真正得数据,而栈只需访问一次。另外,堆的内容被操作系统交换到外存的概率比栈大,栈一般是不会被交换出去的。

???? 综上所述,站在操作系统以上的层面来看,栈的效率比堆高,对于应用程序员,这些都是透明的,操作系统做了很多我们看不到的东西。

http://topic.csdn.net/t/20050529/13/4043607.html

热点排行