OpenJDK:修改 Java 堆管理
OpenJDK: Modifying Java Heap Management
我正在做的项目是关于修改 OpenJdk 堆管理和垃圾收集系统。目前我主要关心的是在创建新对象时找到负责在堆中分配 space 的代码段。
我想知道是否有 Java 专家可以告诉我从哪里开始搜索。
非常感谢您的任何反馈。
方法 InstanceKlass::allocate_instance
可能是您研究的一个很好的切入点。它正在调用 CollectedHeap::obj_allocate
.
这还取决于您要检测哪个垃圾收集器。我最近在 garbage first (G1) GC 上工作,主要 class 位于 /share/vm/gc_implementation/g1/g1CollectedHeap
.
您可能还想看看我们的研究项目 AntTracks,它包含一个定制的 JVM,它跟踪每个对象在 JVM 中的分配和移动,并将其记录到一个跟踪文件中,然后可以分析了。因此,我们还必须检测 GC 分配对象的每个位置。
我正在做的项目是关于修改 OpenJdk 堆管理和垃圾收集系统。目前我主要关心的是在创建新对象时找到负责在堆中分配 space 的代码段。
我想知道是否有 Java 专家可以告诉我从哪里开始搜索。
非常感谢您的任何反馈。
方法 InstanceKlass::allocate_instance
可能是您研究的一个很好的切入点。它正在调用 CollectedHeap::obj_allocate
.
这还取决于您要检测哪个垃圾收集器。我最近在 garbage first (G1) GC 上工作,主要 class 位于 /share/vm/gc_implementation/g1/g1CollectedHeap
.
您可能还想看看我们的研究项目 AntTracks,它包含一个定制的 JVM,它跟踪每个对象在 JVM 中的分配和移动,并将其记录到一个跟踪文件中,然后可以分析了。因此,我们还必须检测 GC 分配对象的每个位置。