进新公司后应公司要求开了一个新系统,oa系统,这几个月都在弄考勤模块,最近上线后用户多了,运行几天后就挂了报outofmemoryerror permgen space!
tomcat也没有报出是哪个地方,哪个方法有问题!
由于系统在生成考勤数据,排班数据,月报表,导入打卡记录均运用多线程以提高速度!感觉是多线程里出了问题,人一多,线程就会开得多,可能某些资源分给线程了,没有主动回收造成内存泄漏!
最终在各个线程里发现,运用线程泄技术,给每个线程传全局的list数据,这样垃圾回收无法知道这些list是否已经失效,所以在线程执行完后得主动把这些list之类的集合清空设为null!
特别是导入打卡记录,二万多笔,为了加快速度,思路是先读这二万多笔数据到map,然后再根据一人一条线程分到一个list,list里页面存着每个人的一月打卡数据list,在执行多线程时,map已经处理完了不需要使用了,但所有线程执行完还要很久,此时map会一直占用资源,不能给回收,所以在多线程启动前就应该把map清空设为null,达到回收!
以后均是达到垃圾回收的内存,事实是permgen space是永久内存区域,这地方并不会垃圾内存回收,这个是用来装载类的,并不是执行的,一般是固定的,只有新访问一个action时才会增加,并访问过这个action类后,以后再访问就不会再增加了;所以解决这个问题的根本就是加大这个设置的内存
在tomcat的
- 在catalina.bat的第一行增加:
- 在catalina.sh的第一行增加:
- set JAVA_OPTS=-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=64m -XX:MaxPermSize=128m
其中XX:MaxPermSize 这个值设为自己应用的合理值就行了!
相关推荐
sshe
sshe项目部署sshe项目部署sshe项目部署sshe项目部署sshe项目部署
从官网下载的sshe孙宇的源代码,已经在eclipse中测试过,可以运行,前台使用了easyUI,展现了easyUI中较多的功能,并且有权限设计,官网的示例网址:http://sshe.jeasyuicn.com/。请参照文件里面的pdf文件配置,并有...
结合easyui技术的前后台开发,简单易懂,很适合初学者学习参考!
孙宇SSHE视频教程项目源码,由于涉及版权,jquery-easyui-1.3.1请用户自行添加到webapp/jslib目录下。SSH框架为Spring3+Strus2+Hibernate4
一个简单易行的sshe框架整合开发大纲,方便个人对知识技术的把握与梳理
jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要...
ssh做的task manager项目,slq server数据库和easyui前台展示。
孙宇SSH+Maven+EasyUI整合视频教程+项目源码,在文档中有下载链接。
了解jQueryui框架跟ssh框架 希望有所帮助 可以更多交流 技术上 不吝赐教
前台采用EasyUI,后台SSH开发的权限管理系统框架
整理一个关于struts2 hibernate spring以及简单的extjs方面的应用
easyui项目,里面有大部分前台easyui控件的使用,后台用struts2搭建
孙宇sypro示例源码 行编辑模式 spring3+struts2+hibernate4+easyui1 3
孙宇sshe示例项目源码 部署方法压缩包里有pdf说明
内含两个版本的源代码以及配置说明文档,采用的技术分别是Spring MVC3+Hibernate4和Struts2+Spring3+Hibernate4+maven,前台页面的用的是Jquery EasyUI,所以页面效果也很炫,拿来学习是非常的棒了,下完后先看文档,...
sshe项目练习
java sshe easyui js jquery等整合开发的sshe项目开发
Myeclipse优化 开发环境配置 SSHE MAVEN入门
孙宇sshe用到的myeclipse插件