上下文:一个处理PDF的单线程程序,需要读取其中文字,做算法分析。
读入文件很多(几十G),处理到一半程序就会卡死直至崩溃。所以需要分析一下:
对垃圾回收进行分析,
发现老年代的内存一直在增加,要么是年龄达到阈值 要么是对象太大一下塞到老年代,这都没关系,因为full gc一直在进行,如果正常的垃圾 full GC一定会把它回收掉。但是持续只增不减,只能怀疑内存泄漏。
通过heap-dump发现 有个可疑对象。。。第三方pdf的包,文件写入buffer之后buffer不释放掉。。导致泄漏,
问题定位! StackOverflow一下。。还是换了一个pdf包。。
解决之后: