项目要用到大量计算,需要与matlab对接,matlab打包安装什么的,之前的博客有写过一篇。。
这次主要是为了记录下,项目占用内存一直上涨的问题。
因为是定时任务,定期执行,之前是发现测试环境项目挂了,问了下,也没人去关闭或者重启项目,查了下历史,发现是占用内存过高被自动杀掉了。。。
一度以为是因为项目中,查询大量数据最后没有清除的原因,让我一顿操作,把所有用到的list,map等等数据集合,全部手工clear掉,然后手工置为null,发现稍微有点用处,内存占用上涨变慢了
最后看了下代码,感觉没啥问题,还从服务器上生成堆的dump文件,用mat自己瞎看。。。。。。
简单的报告如下:
这两个问题,一个是ibatis,一个是java.lang.class,对Mat也不熟,一边百度一边看,自己太菜了,也没发现啥问题。。。。
但是也没有什么简单的大对象啊之类的,当时以为是查询到的数据太多,用完之后没有及时释放,就手工把list,map等等手动清空,再置为null。。。。。。
自己感觉这里的代码没啥问题,应该不是出在查询数据这里,中间也用jdk自带的JConsole和jvisualvm查看了下运行情况,发现堆内存是很正常的,没有什么内存占用过多的问题,上图如下: