日期:2014-05-18  浏览次数:20602 次

内存问题,请教大师如何优化
java.lang.OutOfMemoryError: Java heap space
com.mysql.jdbc.MysqlIO.unpackBinaryResultSetRow(MysqlIO.java:3259)
com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1291)
com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2214)
com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:433)
com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:1922)
com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1351)
com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1185)
com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:684)
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1049)
org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:236)
org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:309)
org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:328)
com.handy.database.DBUtil.find(DBUtil.java:429)
com.handy.database.DBUtil.find(DBUtil.java:400)
com.handy.plugin.auth.dao.MobileUploadDao.findMobile(MobileUploadDao.java:71)
com.handy.plugin.auth.action.MobileUploadAction.readTxt(MobileUploadAction.java:164)
com.handy.plugin.auth.action.MobileUploadAction.execute(MobileUploadAction.java:43)
com.handy.webwork.action.InvokService.doAction(InvokService.java:276)
com.handy.webwork.action.InvokService.invok(InvokService.java:128)
com.handy.webwork.Dispatcher.invok(Dispatcher.java:46)
com.handy.webwork.FilterDispatcher.doFilter(FilterDispatcher.java:79)

内存 Java 性能优化 heap

------解决方案--------------------
请教大师才20分~~

没有代码只能乱猜:

貌似你这查询结果太多了,给查询结果限定一下就好了。
------解决方案--------------------
设置一下JVM的启动参数就OK了,这个是在本地跑的把?
------解决方案--------------------
修改bin/catalina.bat文件,set JAVA_OPTS堆内存配置大点
------解决方案--------------------
对于这个问题我以前犯过,我的经历是用List类型的数据类型接受大量的值。然后或者数组问题