OpenJDK: изменение управления кучей Java

Проект, над которым я работаю, касается модификации систем управления кучей и сборки мусора OpenJdk. В настоящее время моя главная задача — найти сегменты кода, которые отвечают за выделение пространства в куче при создании нового объекта.

Мне было интересно, если какие-либо эксперты Java могут сказать мне, где начать поиск.

Любая ваша обратная связь будет принята с благодарностью.

1

Решение

метод InstanceKlass::allocate_instance может быть хорошей отправной точкой для вашего исследования. Это зовет CollectedHeap::obj_allocate,

http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/oops/instanceKlass.cpp#l1096

2

Другие решения

Это также зависит от того, какой сборщик мусора вы хотите использовать. Я недавно работал над мусор первым (G1) GC, основной класс которого находится в /share/vm/gc_implementation/g1/g1CollectedHeap,

Вы также можете взглянуть на наш исследовательский проект AntTracks, которая состоит из настраиваемой JVM, которая отслеживает распределение и перемещение каждого объекта в JVM и записывает его в файл трассировки, который затем можно проанализировать. Поэтому мы также должны были оборудовать каждое место, где GC выделяет объект.

1

По вопросам рекламы [email protected]