将开发好的java应用程序(多线程的)部署到linux机器后,运行一段时间就会因
java.lang.OutOfMemoryError: Java heap space而终止.
启动脚本为:JAVA -Xms80m -Xmx256m -XX:ThreadStackSize=128 -jar myApp.jar
虽然jvm的最大内存设为256m但运行很长一段时间后还是超出256,达到330多m.
这种问题如何解决?
如果时内存泄漏,那如何查找导致泄漏的代码?
另外,各位高手能否指点一下防止内存泄漏的编码规则?
谢谢!
------解决方案--------------------
windows 更改系统环境变量
加上JAVA_OPTS=-Xms64m -Xmx512m
Linux 在{tomcat_home}/bin/catalina.sh的前面,加
set JAVA_OPTS= '-Xms64 -Xmx512 '
------解决方案--------------------
你把-Xmx256m 改大点不就好了嘛
------解决方案--------------------
lz的两位做法可以采纳,但绝对不是根本解决问题的方法。
------解决方案--------------------
最好用检测内存泄漏的工具检测一下程序
http://dev.yesky.com/56/2591556.shtml
你可以参考看一下这篇文章