package com.alibaba.druid.stat;

import junit.framework.TestCase;

import java.lang.management.ManagementFactory;
import java.text.NumberFormat;
import java.util.HashMap;
import java.util.Map;

public class HashMapMemoryTest extends TestCase {
    public void test_0() throws Exception {
        HashMap item = new HashMap();
        gc();
        long memoryStart = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed();

        final int COUNT = 1024 * 1024;
        Map[] items = new Map[COUNT];
        for (int i = 0; i < COUNT; ++i) {
            items[i] = new HashMap();
            // items[i] = Histogram.makeHistogram(20);
        }

        long memoryEnd = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed();

        System.out.println("memory used : " + NumberFormat.getInstance().format(memoryEnd - memoryStart));
    }

    private void gc() {
        for (int i = 0; i < 10; ++i) {
            System.gc();
        }
    }
}
