整体介绍
MMTk是一个内存管理的工具包 ,同时也是jikes虚拟机的内存管理模块。
其内部实现了多种策略的垃圾回收机制,用于进行配置使用。
主要模块
Plans
对外的整体接口:
- 虚拟内存的布局,初始空间的产生与管理
- 内存分配
- 垃圾回收
- 内存使用统计
针对多核的设计考虑:
- 线程内内存与全局内存(Thread-local-heap)
- 线程同步
- 缓存失效
- 栅栏
具体虚拟机对外的接口规格:
- 策略选择
- 断言实现(MMTk需要)
- 读写栅栏 的回调
- 垃圾回收
- 锁机制
- 内存初始化 (与系统交互)
- 对象模型(对象布局、GC的固有数据)
- 启动控制参数
- 引用类型(Soft,weak等)
- 根结点、对象字段扫描策略 (对象布局、引用类型、回调)
- 数据统计
- 字符串管理
- GC跟踪 支持
- 常量池