Что-то, что вы можете сделать, это сделать Map<Object, Long>
, который сопоставляет каждый объект с размером его памяти.
Затем, чтобы измерить размер конкретного объекта, вы должны сделать это при создании каждого объекта - мерапамять JVM используют до (вызов Runtime.totalMemory()
) и после построения объекта (вызов Runtime.totalMemory()
) и принимают разницу между двумя значениями - это размер объекта в памяти.Затем добавьте Object
и Long
на карту.Оттуда вы сможете просмотреть все ключи на карте и найти объект, используя наибольший объем пространства.
Я не уверен, что есть способ сделать это для объекта после того, как у вас уже естьваш List<Object>
... надеюсь, это полезно!