欢迎来到山村网

找到该死的OutOfMemoryError

2019-03-09 09:47:31浏览:67 来源:山村网   
核心摘要:看到下面这一堆信息, 我想你应该知道要做什么了.mainat java.lang.OutOfMemoryError.init()V (OutOfMemoryError.java:48)at java


看到下面这一堆信息, 我想你应该知道要做什么了.

main  at java.lang.OutOfMemoryError.<init>()V (OutOfMemoryError.java:48)  at java.util.Arrays.copyOfRange([CII)[C (Arrays.java:2694)  at java.lang.String.<init>([CII)V (String.java:203)  at java.lang.StringBuilder.toString()Ljava/lang/String; (StringBuilder.java:405)  at com.mkk.utils.GuidGeneratorTest.outOfMemory()V (GuidGeneratorTest.java:25)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Native Method)  at sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (NativeMethodAccessorImpl.java:57)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (DelegatingMethodAccessorImpl.java:43)  at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Method.java:601)

加大内存,加大内存, 内存溢出了, 于是我设置了

JAVA_OPTS=-server -Xms2048m -Xmx2048m -XX:PermSize=1024m -XX:MaxPermSize=512m -Xss512k

重启服务器, 没过多久又 OutOfMemoryError

是时候知道该死的OutOfMemoryError,

所以, 请给JAVA_OPTS添加

 -XX:+HeapDumponOutOfMemoryError -XX:HeapDumpPath=/home/error

(注: 红色部分为服务器的一路径,当OutOfMemoryError是JVM信息会保存在该目录里)

再重启服务器,期待下一次的OutOfMemoryError吧.

是的,OutOfMemoryError又来了...

现在,去/home/error目录看看吧. 是否有类似java_pid6472.hprof的文件生成, 还很大(好几十或几百MB).

现在, 推荐去下载MAT(Memory Analyzer Tool)工具在看看是什么东东把内存都消耗完了(也可用JDK自带的jvisualvm.exe工具). 下载地址:

http://www.eclipse.org/mat/downloads.php

最后, 找到了源头. 去修改代码吧.

(责任编辑:豆豆)
下一篇:

排除ADSL速度变慢的方法

上一篇:

如何设置tenda路由器的dns

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com