@Override
    public DetailedMemoryMetricSnapshot getSnapshot() {
        double edenSpaceMemoryUsage = calculateUsage(edenSpacePool.getUsage());
        double oldSpaceMemoryUsage = calculateUsage(oldSpacePool.getUsage());
        double survivorSpaceMemoryUsage = calculateUsage(survivorSpacePool.getUsage());
        double codeCacheMemoryUsage = calculateUsage(codeCachePool.getUsage());
        double permGenMemoryUsage = calculateUsage(permGenPool.getUsage());
        double metaspaceMemoryUsage = calculateUsage(metaspacePool.getUsage());
        return new DetailedMemoryMetricSnapshot(
                edenSpaceMemoryUsage,
                oldSpaceMemoryUsage,
                survivorSpaceMemoryUsage,
                codeCacheMemoryUsage,
                permGenMemoryUsage,
                metaspaceMemoryUsage);
    }
Metric for detailed memory usages

@author dawidmalina
@author HyunGil Jeong
agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/memory/DefaultDetailedMemoryMetric.java