java
内存溢出很简单的一段代码,为什么会报
Java code
for(int i = 0 ; i< n ; i ++ ){
//这段只是查询数据,每次返回结果最多只有1000行
List list = query.getSql(sql,startResult,size);
}
以上代码,第一次、第二次、第三次、第四次都成功,第五次或者第六次以上的时候就会出现
java.lang.OutOfMemoryError : java heap space 错误,这是为什么求神人指导,谢谢。
------解决方案--------------------比较内存的话,看前几次之间的内存变化也能看出一些
getSql的实现挺关键的
------解决方案--------------------
------解决方案--------------------单步调试才是硬道理,你这样人家谁也看不出来。一般要不你死循环,或不你代码那里数据处理有问题。
------解决方案---------------------Xms512m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
------解决方案--------------------看不出来的话,在某些关键节点安插
Runtime类的
freeMemory()
Returns the amount of free memory in the Java Virtual Machine.
查看到底哪里内存泄露
------解决方案--------------------OM时把内存dump出来,然后分析dump文件,还有jvm参数设置是否正确
------解决方案--------------------创建过多的对象
我以前也碰到过的。
设置好JVM参数就行。