进段时间在折腾一个批量处理数据的东西,就是从几百万的表中查数据到内存,还会通过主键关联很多表。
callback方法一次查300行数据,每行数据用主键关联2张表的数据,就是一次900行的数据。
其中一个实体是内容,在mysql是一个text子段,可能比较长。
在每次调用完callback后,只是close了session。
用jstat看了内存使用,在200多次查询以后,老身代堆区 100% 。
之后调用了session的clear()以后解决。
这里为什么明明在不调clear()的时候,明明GC了,但是还是没有明显的内存回收,session缓存的对象依然不见回收。
代查。