Java:这个进程分配了多少内存?
我写了一个单元测试,它对内存要求很高。它需要Java:这个进程分配了多少内存?,java,memory,junit,Java,Memory,Junit,我写了一个单元测试,它对内存要求很高。它需要-Xmx2048m参数,否则获取OutOfMemoryException 有没有办法在测试中检查分配了多少内存?编写一个测试(如testshavenoughtmemory)并通过一条解释性错误消息(告诉用户需要一个内存参数)使其失败是很有用的。您可以使用运行时的方法来获取分配给进程的堆的数量。还有一个有用的链接 您可以通过jmxapi获得实际使用的内存,与您在jconsole中看到的相同 像这样 ManagementFactory.getMemoryM
-Xmx2048m
参数,否则获取OutOfMemoryException
有没有办法在测试中检查分配了多少内存?编写一个测试(如
testshavenoughtmemory
)并通过一条解释性错误消息(告诉用户需要一个内存参数)使其失败是很有用的。您可以使用运行时的方法来获取分配给进程的堆的数量。还有一个有用的链接 您可以通过jmxapi获得实际使用的内存,与您在jconsole中看到的相同
像这样
ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed()代码>
你可以这样得到最大值
ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax()代码>您可以使用
试试这个
long total_memory = Runtime.getRuntime().totalMemory(); // Total available now
long free_memory = Runtime.getRuntime().freeMemory(); // Free memory now
long max_memory = Runtime.getRuntime().maxMemory(); // Max available ever
请尝试MemoryMXBean@可能重复的