16 Star 248 Fork 54

wangguanquan / eec

 / 详情

请看下我这内存消耗是否很大

待办的
创建于  
2024-04-14 17:07

生成的文件里面啥都没有竟然还是70多M的文件。可见样式真不少。
我的jvm设置的最大内存为2G, 我的文件是70000行*457列, 请问这个内存消耗,高不高。
用了SXssfWorkbook 用了easyExcel,用了eec,感觉eec的速度更快一点,但是这个内存消耗,好像不比另外两个少。
输入图片说明
输入图片说明
输入图片说明
输入图片说明

评论 (6)

shiyingzhan 创建了任务

可以将测试代码贴出来看一下

这是我的工具类,截图地方为我的获取数据的方法(https://foruda.gitee.com/images/1713178972447991229/b31959d3_1599857.png "屏幕截图")

从代码上看并没有什么不妥之处,但为什么会有7w空行?

用错了(ListSheet,ListMapSheet),导致没有匹配到数据,不过,空单元格还能是excel文件有70多找,估计有样式在。

你可以直接将流写入response而不是返回一个byte[],查看wiki

示例代码:

/**
 * 直接将excell输出到流
 */
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
    String fileName = java.net.URLEncoder.encode("新建文件.xlsx", "UTF-8");
    response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"; filename*=utf-8''" + fileName);
    // 查询数据
    List<Student> students = studentService.list();

    new Workbook().addSheet(new ListSheet<>(students)).writeTo(response.getOutputStream()); // <- 直接写到Response流
}

至于内存的问题你可以先做一下排除,比如先新建一个项目使用main方法做同样的事看一下内存消耗,另外IDEA设置的custome VM是idea运行内存,程序运行内存需要在Application设置或者打包后直接运行,不要依赖于IDEA(IDEA运行的时候会启动很多勾子和监听程序)
设置程序运行VM

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
Java
1
https://gitee.com/wangguanquan/eec.git
git@gitee.com:wangguanquan/eec.git
wangguanquan
eec
eec

搜索帮助