今天用POI导出Excel文件时,报outofmemory错误,debug下,发现是POI在write输出流的时候,stream过大导致内存不够的,为调整tomcat占用内存大小,可如下操作:
Eclipse->Window->Preferences->Server->Runtime Environments->选中Apache Tomcat v5.0->点击Edit按钮->在弹出对话框里点击JRE后面的Installed JREs按钮->在弹出对话框中选中tomcat使用的那个JRE->点击Edit按钮->在弹出对话框中,找到Default VM Arguments,并在输入框中输入:-Xms512M -Xmx512M
经测试,outofmemory不再出现。
-----------------------------
关于堆内存分配:
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最 大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时, JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
Eclipse->Window->Preferences->Server->Runtime Environments->选中Apache Tomcat v5.0->点击Edit按钮->在弹出对话框里点击JRE后面的Installed JREs按钮->在弹出对话框中选中tomcat使用的那个JRE->点击Edit按钮->在弹出对话框中,找到Default VM Arguments,并在输入框中输入:-Xms512M -Xmx512M
经测试,outofmemory不再出现。
-----------------------------
关于堆内存分配:
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最 大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时, JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12125877/viewspace-621748/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12125877/viewspace-621748/
本文介绍了解决使用POI导出Excel过程中遇到的OutofMemory错误的方法。通过调整Tomcat中JVM的初始和最大内存分配参数(-Xms和-Xmx),有效地解决了内存溢出的问题。
1227

被折叠的 条评论
为什么被折叠?



