java - 增加内存以避免 OutOfMemory 错误

标签 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

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

最佳答案

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

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

关于java - 增加内存以避免 OutOfMemory 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25081710/

相关文章:

java - 使用 Apache POI 4.0 运行官方示例 LineChars 和 ScatterChart 时出现问题

arrays - 从评估创建一维数组

java - 玩 Morphia MongoDB : The type Filter is already defined

java - 从 Firebase 实时数据库检索特定数据的最快方法?

eclipse - 无法安装 Eclipse 的 Force.com 插件。 md5 不匹配

java - 如何仅对 NatTable 中视口(viewport)层的选定行数禁用 "Row Selection"?

java - 在dropwizard中授权

java - void 函数/属性调用在哪里执行?

java - 将 Spring boot war 部署到 Tomcat 8

vba - 当条目不同时删除Excel宏中的条目