1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.imaging.test;
19
20 import java.util.ArrayList;
21
22 import org.apache.commons.imaging.common.RationalNumber;
23 import org.apache.commons.imaging.icc.IccTag;
24 import org.openjdk.jol.info.ClassLayout;
25
26 public class PrintShallowObjectSizes {
27
28 public static void main(final String[] args) {
29 new PrintShallowObjectSizes().go(String.class, org.apache.commons.imaging.formats.jpeg.segments.SofnSegment.Component.class,
30 org.apache.commons.imaging.formats.jpeg.segments.SosSegment.Component.class, RationalNumber.class, IccTag.class, ArrayList.class);
31 }
32
33 public static void print(final Class<?>... classes) {
34 new PrintShallowObjectSizes().go(classes);
35 }
36
37 public void go(final Class<?>... classes) {
38 for (final Class<?> cls : classes) {
39 final ClassLayout classLayout = ClassLayout.parseClass(cls);
40 System.out.println(classLayout.toPrintable());
41 System.out.printf("%s shallow size = %,d bytes%n", cls, classLayout.instanceSize());
42 }
43
44 }
45 }