mark-sweep-simulation:标记清除垃圾收集器的仿真

时间:2024-06-15 08:21:04
【文件属性】:

文件名称:mark-sweep-simulation:标记清除垃圾收集器的仿真

文件大小:60KB

文件格式:ZIP

更新时间:2024-06-15 08:21:04

C++

标记清扫垃圾收集器的仿真 标记清除垃圾收集器的高级实现。 创建基于堆栈的VM的模型,其中堆栈保存对曾经分配的所有对象的引用。 维护一个freelist内存,从中进行所有分配。 可以配置的虚拟机参数为: GC调用的阈值-触发GC所需的最小对象数。 堆大小-VM可用于初始分配的块数。 可以通过VM的构造函数VM(threshold,heapSize)来配置这些参数。 VM支持从堆栈中推送和弹出对象的接口。 可达对象是从堆栈上的对象开始的对象,可以通过以下引用对其进行跟踪。 所有无法访问的对象均被视为垃圾,并在下一次调用时由GC收集。 从VM的堆栈中弹出对象后,该对象将无法访问并成为垃圾。 GC调用 在以下两种情况之一中调用GC: 分配的对象数已达到GC调用的阈值。 堆耗尽后,将导致调用GC尝试释放内存以进行新分配。 目录结构 01-将标记阶段设为递归,并使用递归的 02-标记阶


【文件预览】:
mark-sweep-simulation-master
----01-marksweep-simple()
--------tests.cpp(4KB)
--------vm.h(2KB)
--------tests.h(108B)
--------main.cpp(81B)
--------vm.cpp(3KB)
--------Makefile(510B)
----LICENCE.md(1KB)
----03-marksweep-Pointer-Reversal()
--------tests.cpp(4KB)
--------vm.h(3KB)
--------tests.h(108B)
--------main.cpp(81B)
--------vm.cpp(4KB)
--------marksweep(105KB)
--------Makefile(510B)
----04-Demo-GC-Pauses()
--------README.md(312B)
--------Makefile(251B)
--------MemoryTest.java(2KB)
--------.gitignore(8B)
----README.md(2KB)
----.gitignore(126B)
----02-marksweep-Explicit-Stack()
--------tests.cpp(4KB)
--------vm.h(2KB)
--------tests.h(108B)
--------main.cpp(81B)
--------vm.cpp(3KB)
--------Makefile(510B)

网友评论