柚子Nan--回归原点

Everything can be as easy as you like or as complex as you need.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在堆栈上分配内存的一些概念

Posted on 2004-12-05 10:23  柚子Nan  阅读(1217)  评论(1)    收藏  举报

在栈上,每个线程都有有限的内存量。
在堆上,堆空间没有OS定义为固定数量的空间大小来限制,他的空间大小由机器硬件和操作环境来定义。
对象的创建和删除要比在栈上访问内存慢一些。

托管的代码一般都是在堆上创建的,在创建一个对象以后,CLR通过指向下一个可用地址的指针来管理堆地址,优化了对象的创建。使用CLR创建对象的速度几乎和在栈上一样的快,
因为CLR不需要搜索一块空闲的内存来放置对象,在创建了新对象之后,托管的堆指针会直接移动到下一个内存块上,省去了未托管代码给对象分配内存时需要的搜索时间。

另外一个优点是对象是连续存储的,应用程序定位对象就会比把指针指向不连续的内存区域快得多。