package com.arturmkrtchyan.sizeof4j.calculation.hotspot; import com.arturmkrtchyan.sizeof4j.calculation.BaseCalculationStrategy; import com.arturmkrtchyan.sizeof4j.util.ReflectionUtil; import java.util.Map; public class HistogramCalculationStrategy extends BaseCalculationStrategy { private static volatile Object instance; @Override public <T> int calculateShallow(final Class<T> clazz) { instance = ReflectionUtil.newInstance(clazz); final Map<String, HistogramEntry> entries = HotSpotHistogram.heapHistogram(); final HistogramEntry entry = entries.get(clazz.getName()); return entry.bytes/entry.count; } }