Java Object Layout - это проект в OpenJDK для определения структуры памяти экземпляров на виртуальной машине HotSpot.
1 ответ

jol footprint из HashMap<Целое число, Целое число>

У меня проблема с пониманием отпечатка объекта: Я запускаю следующие строки в двух случаях A и B out.println(VM.current().details()); HashMap&lt;Integer, Integer&gt; hashMap = new HashMap&lt;&gt;(); A: for (int i = 0; i &lt; 1000; i++) { hashMap.put…
15 май '17 в 08:49
1 ответ

Jol немного сломан под Java9?

Используя java-9 build 9-ea + 149 и jol 0.6. Запуск этого простого кода: ArrayList&lt;Integer&gt; list = new ArrayList&lt;&gt;(); list.add(12); System.out.println(ClassLayout.parseInstance(list).toPrintable()); Выход: OFFSET SIZE TYPE DESCRIPTION VA…
26 дек '16 в 12:45
1 ответ

Что такое "(что-то еще)" в выводе jol GraphLayout?

При использовании класса GraphLayout jol для печати графа объектов, на которые ссылается экземпляр объекта, некоторые выходные записи говорят "(что-то еще)" вместо типа и ссылочного пути. Например, рассмотрим следующий код, который печатает график с…
04 май '15 в 00:45
1 ответ

В jol отсутствует главное свойство в файле MANIFEST?

Я пытаюсь использовать JOL, из openJDK. Я скачал банку отсюда: http://central.maven.org/maven2/org/openjdk/jol/jol-cli/0.4/jol-cli-0.4.jar Тем не менее, когда я пытаюсь запустить с: java -jar jol-cli-0.4.jar --help Я получил: no main manifest attrib…
21 янв '16 в 18:44
1 ответ

Как запустить JOL на Java 9?

Я пытаюсь запустить программу используя jol с Java 9 но без везения. У меня есть следующая зависимость в pom.xml: &lt;dependency&gt; &lt;groupId&gt;org.openjdk.jol&lt;/groupId&gt; &lt;artifactId&gt;jol-core&lt;/artifactId&gt; &lt;version&gt;0.9&lt;/…
05 окт '17 в 10:11
1 ответ

Попытка понять след ArrayList в JOLSample_16_AL_LL

Вот ссылка на рассматриваемый код - http://hg.openjdk.java.net/code-tools/jol/file/07087260ce41/jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_16_AL_LL.java public static void main(String[] args) throws Exception { out.println(VM.curren…
12 сен '16 в 03:00
1 ответ

Расположение объектов Java и статические поля

Инструмент JOL дает возможность рассчитывать структуру памяти объекта. Я заметил, что статические поля не участвуют в расчете, например: public class Foo { private static final int i = 1; private char value; public Foo(char value) { this.value = val…
03 май '15 в 11:12
1 ответ

Макет примитивного массива Java в памяти

Вот два примера, на которых я хотел бы основать свой вопрос (при условии, что у вас есть JOL Вот): Layouter layout32Bits = new HotSpotLayouter(new X86_32_DataModel()); Layouter layout64BitsComp = new HotSpotLayouter(new X86_64_COOPS_DataModel()); И …
24 май '18 в 12:12
1 ответ

Как объекты Java размещаются в памяти на Android?

Я хорошо знаком с расположением объектов в куче в HotSpot, но не так много для Android. Например, в 32-разрядной JVM HotSpot объект в куче реализован в виде 8-байтового заголовка, за которым следуют поля объекта (один байт для booleanчетыре байта дл…
06 фев '13 в 21:05
1 ответ

Закрепление объекта путем изменения битов в слове маски заголовка объекта

Мне было интересно, можно ли предотвратить перемещение объекта с помощью GC, установив один из битов в слове метки заголовка объекта (пытаясь обмануть GC). Поэтому я хотел бы знать, можно ли таким образом гарантировать, что помеченный объект всегда …
06 дек '16 в 00:19
2 ответа

Макет объекта OpenJ9 VM

OpendJDK имеет инструмент Java Object Layout (JOL), который позволяет оценить реальный объем памяти экземпляра указанного объекта. Он может отображать макет объекта для HotSpot, но будет ли он таким же в OpenJ9?
30 июл '18 в 11:35
2 ответа

Почему инструменты VisualVm и JOL дают разные результаты для размера объекта

Я попытался измерить размер одного экземпляра класса A: package pkg; class A { private int i; } Результат с использованием VisualVm составил 20 байт: Но результат с использованием JOL составил 16 байт: pkg.A object internals: OFFSET SIZE TYPE DESCRI…
22 окт '17 в 11:39
1 ответ

Как интерпретировать слово метки экземпляра?

Я пытаюсь понять вывод макета объекта Java на 64-битной виртуальной машине HotSpot (v8). Я не понимаю, как используются первые три бита слова метки , которые в соответствии с комментарием в связанном файле класса должны указывать, установлена ​​ли н…
2 ответа

Использование строки против байта [] в качестве значения, Использование памяти в карте

Я прочитал это в нескольких местах, что использование байта [] вместо строки сэкономит вам память. Я хотел проверить это с помощью JOL. Вот мой тест: public static void main (String[] args) throws java.lang.Exception{ System.out.println(VMSupport.vm…
27 фев '16 в 20:41
1 ответ

Почему вызов объекта toString() влияет на вывод заголовка объекта? Я использую пакет jol

Код L очень простой public class L { } public class Synchronized1 { public static void main(String[] args) { L l=new L(); // System.out.println(l.toString()); System.out.println(ClassLayout.parseInstance(l).toPrintable()); } } Раскомментирование и п…
25 сен '19 в 12:52
1 ответ

UseCompressedOops UseCompressedClassPointers в jdk-13 и jdk-15

Случайно я наткнулся на изменение jdk-15что я не знал. Предположим, у меня очень простой вопрос: каков размер массива из 3-х промежуточных чисел? Для этого я использую JOL. Код довольно тривиальный: import org.openjdk.jol.info.ClassLayout; import or…
13 июл '20 в 18:29
1 ответ

Запустите исключение jol-core, сообщение об исключении: "Процесс завершен с кодом выхода 137 (прерван сигналом 9: SIGKILL)"

Я борюсь с этой проблемой, могу ли я получить вашу помощь. Среда выполнения: Mac Book 10.15.7 java version &quot;1.8.0_261&quot; Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode) o…
29 окт '20 в 17:52
1 ответ

Йол, чтобы найти смещение полей в классе

Я использую jol, чтобы найти смещение полей, как показано ниже: import java.lang.reflect.Field; public static void main(String[] args) throws NoSuchFieldException { System.out.println(ClassLayout.parseClass(Field.class).toPrintable()); } Выход: OFF …
27 июн '23 в 11:02
2 ответа

Работает ли макет объектов Java с записями Java?

Я пытаюсь использовать макет объекта Java (JOL) для измерения размера экземпляра объекта, который содержит экземпляры некоторых записей Java. я получаюUnsupportedOperationExceptionс описанием «невозможно получить смещение поля в классе записи» при и…
28 апр '23 в 13:50