POI导出Excel文件与JVM内存的关系
最近的一个项目需要导出大数据量的Excel文件,我使用了POI做为底层的Excel导出API。
在实际使用中得到一点小小体会,与大家分享一下。
测试数据:
数据记录长度:24字段/记录
字段大小:2个中文字/字段
JVM内存实际支持导出的记录数:11000条记录/64M
JVM内存配置到1024M时,可以导出此类数据10W条以上,大家可以参考此数据来配置自己的Excel数据量和JVM内存,以达到效果最优。
附:JVM内存配置说明
查看当前JVM的内存使用情况
System.out.println(Runtime.getRuntime().totalMemory()/(1024*1024) + "M");
System.out.println(Runtime.getRuntime().maxMemory()/(1024*1024) + "M");
System.out.println(Runtime.getRuntime().freeMemory()/(1024*1024) + "M");
如何获得JVM的最大可用内存
在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。
实际发现版本上有细微差别的JDK最大容许内存值都不尽相同,因此在实际的应用中还是要自己试验一下看到底内存能达到什么样的值。
通过这个表想说明的是,如果你的机器的内存太多的话,只能通过多运行几个实例来提供机器的利用率了,例如跑Tomcat,你可以多装几个Tomcat并做集群,依此类推。
以下引用地址:http://blog.csdn.net/tyrone1979/archive/2006/09/25/1274458.aspx
JVM内存的调优
|
-Xms
|
初始Heap大小
|
|
-Xmx
|
java heap最大值
|
|
-Xmn
|
young generation的heap大小
|
|
-Xss
|
每个线程的Stack大小
|







评论排行榜