JAVA导入EXCEL解析的时候GC overhead limit exceeded


public static List<Object[]> importExcel(String fileName) {
        log.info("导入解析开始,fileName:{}",fileName);
        try {
            List<Object[]> list = new ArrayList<>();
            InputStream inputStream = new FileInputStream(fileName);
            Workbook workbook = WorkbookFactory.create(inputStream);
            Sheet sheet = workbook.getSheetAt(0);
            //获取sheet的行数
            int rows = sheet.getPhysicalNumberOfRows();

img

文件太大,idea内存太小了,设置一下内存就行

使用SXSSWorkbook

  • 看下这篇博客,也许你就懂了,链接:学习java 异常处理--GC overhead limit exceeded
  • 除此之外, 这篇博客: java知识-整合中的 GC overhead limit exceeded 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • GC回收时间过长时会抛出OutOfMemoryError,过长的定义是,超过了98%的时间用来做GC,并且回收了不到2%的堆内存
    连续多次GC都只回收了不到2%的极端情况下,才会抛出