Я использую Java Hotspot 1.8.0_191-b12 (64 бита, Xmx <32 ГБ) и смотрю дамп jmap (формат hprof) с различными инструментами. </p>
Отчеты VisualVM (и инструменты на основе профилировщика NetBeans) сильно отличаются от Yourkit и Eclipse Memory Analyzer.
Я посмотрел на самые простые объекты, и даже они отличаются ... для java.lang.Integer, VisualVm сообщает 20 байтов вместо 16 как другие (это в моей интерпретации, потому что = 12 байтов заголовок + 4 байта int 'value' из класса Integer = 16, заполнение не требуется).
Какой из них правильный и почему?