哪一个表明java应用程序的确切内存使用

时间:2013-08-27 02:28:30

标签: java memory-management memory-leaks

我有一个java应用程序。问题现在我使用jmap进行堆积,我也在我的应用程序中运行了这些代码。它们给了我不同的值。运行时显示256mb,这是我指定的初始和最大内存?我想检测是否有任何内存泄漏,但运行时是波动的,而堆中的那个是少量增加?对此有何帮助?

long memory = runtime.totalMemory() - runtime.freeMemory();
System.out.println("\n\nUsed memory is bytes: " + memory);

//Print the jvm heap size.
long heapSize = runtime.totalMemory();
System.out.println("\n\nHeap Size = " + heapSize);

int mb = 1024*1024;
System.out.println("##### Heap utilization statistics [MB] #####");

//Print used memory
System.out.println("Used Memory:" + (runtime.totalMemory() - runtime.freeMemory()) / mb);

//Print free memory
System.out.println("Free Memory:" + runtime.freeMemory() / mb);

//Print total available memory
System.out.println("Total Memory:" + runtime.totalMemory() / mb);

//Print Maximum available memory
System.out.println("Max Memory:" + runtime.maxMemory() / mb);

2 个答案:

答案 0 :(得分:1)

我建议使用Visual VM来监视内存使用情况等。

答案 1 :(得分:0)

另外,你可以试试Netbeans profiler。您可以使用netbeans profiler对您的Web /独立应用程序进行概要分析。

我们正在使用netbeans探查器来分析我们的应用程序。用于分析java应用程序的好工具。

检查出来。

https://profiler.netbeans.org/

http://wiki.netbeans.org/FaqProfilerAttachRemoteServer