增加内存以避免OutOfMemory错误

时间:2014-08-01 13:46:37

标签: java eclipse excel

我使用Apache POI获取OutOfMemoryError。我从数据库中提取了超过400,000条记录到excel表。目前我的eclipse.ini文件如下所示:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20130521-0416
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m

我知道我必须增加记忆力,但我不确定我应该多少改变它。我也应该在其他地方改变它吗?我确定有关于此的链接,所以如果有人可以指导我,那就太好了。 提前致谢, 桑尼

1 个答案:

答案 0 :(得分:1)

Excel具有最大行数。对于 XLS ,限制为 65536 行,对于 XLSX ,限制为 1048576 行。因此,建议您可以使用SXSSF或将其写入csv。至于更改堆大小,有几种方法可以做到这一点。

  1. 将eclipse.ini中的-Xmx512m更改为-Xmx1024m(1GB)或您想要的任何内容。
  2. 在Eclipse中转到运行配置>> Aruguments和VM参数下放-Xmx1024m
  3. 如果您有一个带有产品的插件项目,您可以转到产品选择启动选项卡并在VM参数下:put -Xmx1024m