内存泄漏java

时间:2016-02-03 08:08:05

标签: java memory-leaks jmap

我的java应用程序,总是需要越来越多的内存(从大约40mb开始,2天后大约140mb)

我用过

./jmap -histo 17364 | head -10 
 num     #instances         #bytes  class name
----------------------------------------------
   1:       1814362       68884536  [C
   2:       1813805       29020880  java.lang.String
   3:          1604        9989632  [B
   4:          1333         266184  [I
   5:          5769         250376  [Ljava.lang.Object;
   6:          2410         235720  java.lang.Class
   7:          2982         119280  java.util.HashMap

了解分配此内存的原因。有没有办法检测哪个实际的java类正在使用这些char-Arrays和字符串?

1 个答案:

答案 0 :(得分:0)

您需要进行堆分析,使用jmap生成堆转储    -dump:file = fileLocation PID,之后您可以使用Eclipse MAT打开生成的堆转储。