1、JXL导入excel导致Full GC (System)
问题描述:最近在监控GC日志发现总是会出现Full GC(System),如图所示,可能是程序员在开发时调用了System.gc(),于是在代码中搜索System.gc(),发现代码中没有调用System.gc()的地方。于继续监控GC日志,在出现Full GC(System)时,用命令jstat 22688 > a.txt将<b线程执行情况输出到文件中,然后查看文件,发现系统中导入试题功能正在执行,于是查看导题代码,没有发现问题,于是继续监控。再输出线程执行情况,还是导题功能正在执行,于是再次查看代码,还是没有发现问题。既然代码本身没有问题,那是不是引入的第3方jar包有问题?在导入excel时,我们用的是JXL,在网上找了个源码,查看源码发现在导入excel结束时,代码调用close()方法时调用了System.gc()。
问题解决:在jvm启动参数中加入-XX:+DisableExplicitGC问题解决。也不知道JXL中为什么要在关闭时调用System.gc()。
2、考试大并发情况下内存溢出
问题描述: