在最近的一个项目里,经常遇到内存溢出的问题,java.lang.OutOfMemoryError: Java heap space .
调查到原因在在于一次从数据库中读取的记录有8万多条(其实一点也不多).我使用简单的jdbc进行测试,采用相同的sql,从数据库中读取的16万条数据,并封装成对象,程序没有报出内存溢出.怀疑是tomcat 的jvm 的内存设置过小导致的.从网上找了很多很与修改tomcat/WebSphere jvm的方法.对于测试环境,使用的是WebSphere,可以通过其console控制台来完成,非常方便.对于tomcat,现在采用的是tomcat免安装的版本.直接修改tomcat目录下配置文件,不见效果.
后来在找到eclispe 中window->preferences->Java->Installed JRE ,中对Default VM Arguments参数进行设置(-Xms64m -Xmx400m),无内存溢出的问题.
调查到原因在在于一次从数据库中读取的记录有8万多条(其实一点也不多).我使用简单的jdbc进行测试,采用相同的sql,从数据库中读取的16万条数据,并封装成对象,程序没有报出内存溢出.怀疑是tomcat 的jvm 的内存设置过小导致的.从网上找了很多很与修改tomcat/WebSphere jvm的方法.对于测试环境,使用的是WebSphere,可以通过其console控制台来完成,非常方便.对于tomcat,现在采用的是tomcat免安装的版本.直接修改tomcat目录下配置文件,不见效果.
后来在找到eclispe 中window->preferences->Java->Installed JRE ,中对Default VM Arguments参数进行设置(-Xms64m -Xmx400m),无内存溢出的问题.