找回密码
 立即注册

QQ登录

只需一步,快速开始

六月的天空

注册会员

3

主题

11

帖子

30

积分

注册会员

积分
30
最新发帖
六月的天空
注册会员   /  发表于:2023-8-1 10:43  /   查看:964  /  回复:6
本帖最后由 Joestar.Xu 于 2023-8-1 13:37 编辑


workbook.addDataSource("ds", object);workbook.processTemplate();
object 对象简单,只有10个字段,但是行数比较大,超过了100w行,执行的时候性能非常不好,内存占用很高,远远超出对象本身占用的内存大小,异常详情如下所示:


Exception in thread "TraceCollector" java.lang.OutOfMemoryError: GC overhead limit exceeded        at java.util.ArrayList.<init>(ArrayList.java:153)        at com.meituan.mtrace.collector.sg.AbstractCollector$Dispatcher.run(AbstractCollector.java:161)        at java.lang.Thread.run(Thread.java:748)java.lang.OutOfMemoryError: Java heap space        at java.util.Arrays.copyOf(Arrays.java:3181)        at java.util.ArrayList.grow(ArrayList.java:265)        at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:239)        at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:231)        at java.util.ArrayList.add(ArrayList.java:462)        at com.grapecity.documents.excel.z.z.a(Unknown Source)        at com.grapecity.documents.excel.z.z.a(Unknown Source)        at com.grapecity.documents.excel.z.z.a(Unknown Source)        at com.grapecity.documents.excel.C.as.aj(Unknown Source)        at com.grapecity.documents.excel.Workbook.processTemplate(Unknown Source)





6 个回复

倒序浏览
六月的天空
注册会员   /  发表于:2023-8-1 10:45:14
沙发

workbook.addDataSource("ds", object);workbook.processTemplate();
object 对象简单,只有10个字段,但是行数比较大,超过了100w行,执行的时候性能非常不好,内存占用很高,远远超出对象本身占用的内存大小,异常详情如下所示:

Exception in thread "TraceCollector" java.lang.OutOfMemoryError: GC overhead limit exceeded        at java.util.ArrayList.<init>(ArrayList.java:153)        at com.meituan.mtrace.collector.sg.AbstractCollector$Dispatcher.run(AbstractCollector.java:161)        at java.lang.Thread.run(Thread.java:748)java.lang.OutOfMemoryError: Java heap space        at java.util.Arrays.copyOf(Arrays.java:3181)        at java.util.ArrayList.grow(ArrayList.java:265)        at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:239)        at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:231)        at java.util.ArrayList.add(ArrayList.java:462)        at com.grapecity.documents.excel.z.z.a(Unknown Source)        at com.grapecity.documents.excel.z.z.a(Unknown Source)        at com.grapecity.documents.excel.z.z.a(Unknown Source)        at com.grapecity.documents.excel.C.as.aj(Unknown Source)        at com.grapecity.documents.excel.Workbook.processTemplate(Unknown Source)
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-1 13:43:16
板凳
您好,请提供一个可以复现这个问题的Demo,我们这边调研一下。
回复 使用道具 举报
六月的天空
注册会员   /  发表于:2023-8-1 14:04:04
地板
Joestar.Xu 发表于 2023-8-1 13:43
您好,请提供一个可以复现这个问题的Demo,我们这边调研一下。

100w行对象,每个对象10个字段,通过workbook.addDataSource("ds", object);workbook.processTemplate();就可以复现
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-1 17:30:24
5#
1、GCExcel的性能是会受到内存影响的,建议您那边将内存调大后再试试,数据量越大需要的内存也越多。
2、旧版本的性能相对新版本来说较差,建议您升级到v6版本后再试试看性能是否有提升。
回复 使用道具 举报
六月的天空
注册会员   /  发表于:2023-8-1 18:12:14
6#
Joestar.Xu 发表于 2023-8-1 17:30
1、GCExcel的性能是会受到内存影响的,建议您那边将内存调大后再试试,数据量越大需要的内存也越多。
2、 ...

升级到v6版本的兼容性有没有什么影响呢?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-2 09:40:38
7#
您好,新版本的发布都是与旧版本向下兼容的,不过v4到v6跨度有点大,建议您先本地尝试升级至v5后,再升级至v6,如果升级过程中出现了问题,您再具体反馈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部