首页 > 其他 > 详细

sshe运行几天后报outofmemoryerror permgen space

时间:2015-11-27 02:12:07      阅读:282      评论:0      收藏:0      [点我收藏+]

? ? ?进新公司后应公司要求开了一个新系统,oa系统,这几个月都在弄考勤模块,最近上线后用户多了,运行几天后就挂了报outofmemoryerror permgen space!

? ? ?tomcat也没有报出是哪个地方,哪个方法有问题!

? ? 由于系统在生成考勤数据,排班数据,月报表,导入打卡记录均运用多线程以提高速度!感觉是多线程里出了问题,人一多,线程就会开得多,可能某些资源分给线程了,没有主动回收造成内存泄漏!

? ? 最终在各个线程里发现,运用线程泄技术,给每个线程传全局的list数据,这样垃圾回收无法知道这些list是否已经失效,所以在线程执行完后得主动把这些list之类的集合清空设为null!

? ?特别是导入打卡记录,二万多笔,为了加快速度,思路是先读这二万多笔数据到map,然后再根据一人一条线程分到一个list,list里页面存着每个人的一月打卡数据list,在执行多线程时,map已经处理完了不需要使用了,但所有线程执行完还要很久,此时map会一直占用资源,不能给回收,所以在多线程启动前就应该把map清空设为null,达到回收!

sshe运行几天后报outofmemoryerror permgen space

原文:http://520shuijing.iteye.com/blog/2259343

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!