垃圾回收的算法与实现1.4 堆_垃圾回收的算法与实现1.4 堆试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 算法 > 垃圾回收的算法与实现 > 1.4 堆

垃圾回收的算法与实现——1.4 堆

堆指的是用于动态(也就是执行程序时)存放对象的内存空间。当mutator 申请存放对象时,所需的内存空间就会从这个堆中被分配给mutator。 GC 是管理堆中已分配对象的机制。在开始执行mutator 前,GC 要分配用于堆的内存空间。一旦开始执行mutator,程序就会按照mutator 的要求在堆中存放对象。等到堆被对象占满后,GC 就会启动,从而分配可用空间。如果不能分配足够的可用空间,一般情况下我们就要扩大堆。 然而,为了让读者能更容易理解,在“算法篇”中我们把堆的大小固定为常量HEAP_SIZE,不会进行扩大。此外,我们把$heap_start 定为指向堆首地址的指针,把$heap_end定为指向堆末尾下一个地址的指针。也就是说,$heap_end 等于$heap_start + HEAP_SIZE。 此外,本书中将如图所示的堆的左侧设为内存的低地址,右侧设为高地址。 HEAP_SIZE、$heap_start 和$heap_end 的关系如图1.3 所示。 图1.3 堆

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《垃圾回收的算法与实现》其他试读目录

• 1.1 对象/ 头/ 域
• 1.2 指针
• 1.3 mutator
• 1.4 堆 [当前]
• 1.5 活动对象/ 非活动对象
• 1.6 分配
• 1.7 分块
• 1.8 根
• 1.9 评价标准
• 2.1 什么是GC标记- 清除算法