问题描述
windows任务管理器里看java内存只增不减
解决方案
解决方案二:
楼主是不是在线程池里用ibatis之类的了?
解决方案三:
我觉得你主要得看下几个linkedlist里面怎么回事。
解决方案四:
Toskgary:业务就是读取CSV文件大量数据,最终走Mybatis向数据库批量插入数据。观察任务管理器内存只增不减,而用Jprofile观察各个Class类对象内存变化并不是一直递增,还请教这种现象,利用Jprofile该如何操作才能定位问题所在之处?谢谢。
解决方案五:
引用3楼qq_20047493的回复:
Toskgary:业务就是读取CSV文件大量数据,最终走Mybatis向数据库批量插入数据。观察任务管理器内存只增不减,而用Jprofile观察各个Class类对象内存变化并不是一直递增,还请教这种现象,利用Jprofile该如何操作才能定位问题所在之处?谢谢。
实在不好意思,jprofile不太懂。我意思是,你想办法把几个list里面的内容点开来看看,看看这些东西是不是仍然在用,是不是和你占的内存有关系。
解决方案六:
[ohms]2014-08-2714:22:46[com.iswoo.ohms.parsefile.ExtractData.extractPerfDataFromCSV](189)-[INFO]同时读取多个性能指标文件进行操作,已扫描CSV文件记录2000行.[ohms]2014-08-2714:33:32[com.iswoo.ohms.parsefile.ExtractData.extractPerfDataFromCSV](261)-[INFO][LU]CSV文件第2889行列标题.[ohms]2014-08-2714:35:12[com.iswoo.ohms.parsefile.ExtractData.extractPerfDataFromCSV](189)-[INFO]同时读取多个性能指标文件进行操作,已扫描CSV文件记录3000行.[ohms]2014-08-2714:42:33[com.iswoo.ohms.orm.GenericDAOImpl.insert](58)-[ERROR]excutecom.iswoo.ohms.dao.impl.mappers.AssetPerfDataMapper.insertLUPerfDataBatchtoinsertdataexception,condition[128个实体对象]org.mybatis.spring.MyBatisSystemException:SqlSessionoperation;nestedexceptionisjava.lang.OutOfMemoryError:Javaheapspaceatorg.mybatis.spring.SqlSessionTemplate.wrapException(SqlSessionTemplate.java:250)atorg.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:137)atorg.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:117)atorg.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:190)atcom.iswoo.ohms.orm.GenericDAOImpl.insert(GenericDAOImpl.java:55)atcom.iswoo.ohms.dao.impl.AssetPerfDataDaoImpl.insertLUPerfDataBatch(AssetPerfDataDaoImpl.java:176)atcom.iswoo.ohms.parsefile.ExtractData.insertPerf(ExtractData.java:602)atcom.iswoo.ohms.parsefile.ExtractData.extractPerfDataFromCSV(ExtractData.java:267)atcom.iswoo.ohms.parsefile.ImportPerfDataJob.execute(ImportPerfDataJob.java:65)atorg.quartz.core.JobRunShell.run(JobRunShell.java:216)atorg.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)Causedby:java.lang.OutOfMemoryError:Javaheapspaceatjava.util.regex.Pattern$BnM.optimize(Pattern.java:5394)atjava.util.regex.Pattern.compile(Pattern.java:1410)atjava.util.regex.Pattern.<init>(Pattern.java:1124)atjava.util.regex.Pattern.compile(Pattern.java:817)atjava.lang.String.replaceFirst(String.java:1967)atorg.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext$1.handleToken(ForEachSqlNode.java:120)atorg.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:25)atorg.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext.appendSql(ForEachSqlNode.java:125)atorg.apache.ibatis.builder.xml.dynamic.TextSqlNode.apply(TextSqlNode.java:19)atorg.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)atorg.apache.ibatis.builder.xml.dynamic.ForEachSqlNode.apply(ForEachSqlNode.java:55)atorg.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)atorg.apache.ibatis.builder.xml.dynamic.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:22)atorg.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:198)atorg.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:45)atorg.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:16)atorg.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:27)atorg.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:227)atorg.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:27)atorg.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:73)atorg.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:43)atorg.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:102)atorg.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:91)atorg.mybatis.spring.SqlSessionTemplate$4.doInSqlSession(SqlSessionTemplate.java:192)atorg.mybatis.spring.SqlSessionTemplate$4.doInSqlSession(SqlSessionTemplate.java:191)atorg.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:135)atorg.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:117)atorg.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:190)atcom.iswoo.ohms.orm.GenericDAOImpl.insert(GenericDAOImpl.java:55)atcom.iswoo.ohms.dao.impl.AssetPerfDataDaoImpl.insertLUPerfDataBatch(AssetPerfDataDaoImpl.java:176)atcom.iswoo.ohms.parsefile.ExtractData.insertPerf(ExtractData.java:602)atcom.iswoo.ohms.parsefile.ExtractData.extractPerfDataFromCSV(ExtractData.java:267)[ohms]2014-08-2714:42:33[com.iswoo.ohms.utils.ExceptionUtils.logErrorAndThrowException](48)-[ERROR]sqlStatement:com.iswoo.ohms.dao.impl.mappers.AssetPerfDataMapper.insertLUPerfDataBatch----parameter:[128个实体对象][ohms]2014-08-2714:42:33[com.iswoo.ohms.parsefile.ExtractData.insertPerf](606)-[ERROR]com.iswoo.ohms.exceptions.DAOBaseException:sqlStatement:com.iswoo.ohms.dao.impl.mappers.AssetPerfDataMapper.insertLUPerfDataBatch----parameter:[128个实体对象][ohms]2014-08-2714:42:34[com.iswoo.ohms.orm.GenericDAOImpl.insert](58)-[ERROR]excutecom.iswoo.ohms.dao.impl.mappers.AssetPerfDataMapper.insertLUPerfDataBatchtoinsertdataexception,condition[128个实体对象]org.mybatis.spring.MyBatisSystemException:SqlSessionoperation;nestedexceptionisjava.lang.OutOfMemoryError:Javaheapspaceatorg.mybatis.spring.SqlSessionTemplate.wrapException(SqlSessionTemplate.java:250)atorg.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:137)atorg.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:117)atorg.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:190)atcom.iswoo.ohms.orm.GenericDAOImpl.insert(GenericDAOImpl.java:55)atcom.iswoo.ohms.dao.impl.AssetPerfDataDaoImpl.insertLUPerfDataBatch(AssetPerfDataDaoImpl.java:176)atcom.iswoo.ohms.parsefile.ExtractData.insertPerf(ExtractData.java:602)atcom.iswoo.ohms.parsefile.ExtractData.extractPerfDataFromCSV(ExtractData.java:267)atcom.iswoo.ohms.parsefile.ImportPerfDataJob.execute(ImportPerfDataJob.java:65)atorg.quartz.core.JobRunShell.run(JobRunShell.java:216)atorg.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)Causedby:java.lang.OutOfMemoryError:Javaheapspaceatcom.ibm.db2.jcc.c.gb.b(gb.java:1544)atcom.ibm.db2.jcc.c.jb.Rc(jb.java:3096)atcom.ibm.db2.jcc.c.jb.b(jb.java:2873)atcom.ibm.db2.jcc.c.jb.b(jb.java:2788)atcom.ibm.db2.jcc.c.jb.a(jb.java:2652)atcom.ibm.db2.jcc.c.jb.b(jb.java:2543)atcom.ibm.db2.jcc.c.jb.a(jb.java:2468)atcom.ibm.db2.jcc.c.jb.a(jb.java:169)atcom.ibm.db2.jcc.c.jb.b(jb.java:78)atcom.ibm.db2.jcc.c.w.b(w.java:60)atcom.ibm.db2.jcc.c.dc.c(dc.java:331)atcom.ibm.db2.jcc.b.tf.db(tf.java:1746)atcom.ibm.db2.jcc.b.tf.gb(tf.java:1817)atcom.ibm.db2.jcc.b.tf.d(tf.java:2298)atcom.ibm.db2.jcc.b.tf.Z(tf.java:1331)atcom.ibm.db2.jcc.b.tf.execute(tf.java:1315)atcom.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:989)atorg.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:22)atorg.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:51)atorg.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:29)atorg.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:73)atorg.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:43)atorg.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:102)atorg.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:91)atorg.mybatis.spring.SqlSessionTemplate$4.doInSqlSession(SqlSessionTemplate.java:192)atorg.mybatis.spring.SqlSessionTemplate$4.doInSqlSession(SqlSessionTemplate.java:191)atorg.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:135)atorg.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:117)atorg.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:190)atcom.iswoo.ohms.orm.GenericDAOImpl.insert(GenericDAOImpl.java:55)atcom.iswoo.ohms.dao.impl.AssetPerfDataDaoImpl.insertLUPerfDataBatch(AssetPerfDataDaoImpl.java:176)atcom.iswoo.ohms.parsefile.ExtractData.insertPerf(ExtractData.java:602)
解决方案七:
该回复于2014-09-22 08:44:52被版主删除