Насколько я знаю хорошо известный инструмент Инструмент Java не может правильно рассчитать глубину объекта.JVM глубокий объем памяти объекта
Есть ли надежный способ вычислить на JVM правильный глубокий размер объекта?
Используемый случай, о котором я думаю, представляет собой фиксированную (или верхнюю ограниченную) структуру данных размера памяти, то есть кэш.
Примечание: насколько это возможно, я хотел бы корпоративное решение готово, так как «стандарт» кодирования практики или хорошо протестирована библиотека
Не могли бы вы обновить свой вопрос, чтобы объяснить, почему http://stackoverflow.com/a/52682/3224483 не работает для вас? Это был первый результат Google для ** памяти Java **, который говорит мне, что вы не выглядели очень тяжело. – Rainbolt
JVM может выделять столько памяти, сколько захочет (http://docs.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html#compressedOop), и это не собираюсь рассказывать вам, что он делает внутри (за исключением внешних профилировщиков, возможно), расчеты могут быть хорошей оценкой в лучшем случае. И что означает глубокий размер, который вы ссылаетесь на объект, на который также ссылается что-то еще? – zapl
@ Джон ничего себе, надеюсь, вы не дали -1 для этого! getObjectSize(), как я указал в вопросе, AFAIK не перенастраивает глубокий размер объекта, кстати, даже в документации говорится, что это приближение! –