转载 堆与栈的区别二.docVIP

  • 3
  • 0
  • 约7.41千字
  • 约 13页
  • 2018-06-14 发布于福建
  • 举报
转载 堆与栈的区别二

转载 堆和栈的区别二 原文地址:堆和栈的区别二作者:阿买基础知识: 堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表。允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称为入栈和出栈。有一组CPU指令可以实现对进程的内存实现堆栈访问。其中,POP指令实现出栈操作,PUSH指令实现入栈操作。CPU的ESP寄存器存放当前线程的栈顶指针,EBP寄存器中保存当前线程的栈底指针。CPU的EIP寄存器存放下一个CPU指令存放的内存地址,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行。 参考:《Windows下的HEAP溢出及其利用》by:isno 《windows核心编程》by:Jeffrey Richter 摘要:讨论常见的堆性能问题以及如何防范它们。(共9页) 前言 您是否是动态分配的C/C++对象忠实且幸运的用户?您是否在模块间的往返通信中频繁地使用了自动化?您的程序是否因堆分配而运行起来很慢?不仅仅您遇到这样的问题。几乎所有项目迟早都会遇到堆问题。大家都想说,我的代码真正好,只是堆太慢。那只是部分正确。更深入理解堆及其用法、以及会发生什么问题,是很有用的。 什么是堆? (如果您已经知道什么是堆,可以跳到什么是常见的堆性能问题?部分) 在程序中,使用堆来动态分配和释放对象。在下列情况下,调用堆操作: 事先不知

文档评论(0)

1亿VIP精品文档

相关文档