package com.alibaba.druid.stat;

import java.lang.management.ManagementFactory;
import java.text.NumberFormat;

import junit.framework.TestCase;

public class MemoryTest extends TestCase {
    public void test_0() throws Exception {
        A item = new A();
        gc();
        final int COUNT = 1024 * 1024;
        A[] items = new A[COUNT];

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

        for (int i = 0; i < COUNT; ++i) {
            items[i] = new A();
            // 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();
        }
    }

    public static class A {
        private volatile long v;
    }
}
