0

我正在使用 eclipse 使用 POI 从 Oracle 数据库创建 excel 文件。如果数据集小没问题。但是,如果它很大,我们会遇到以下异常。

线程“主”java.lang.OutOfMemoryError 中的异常:Java 堆空间

My heap setting is. -Xms512m -Xmx1024m

如果我将最大尺寸增加到 2048m,我们得到

Could not create Java Virtual Machine.

错误。谢谢

4

2 回答 2

2

我认为您需要检查您的操作系统的容量是多少(是 32 位系统还是 64 位系统)

据我的资料:

期望拥有一个大块内存的 32 位 JVM 不能使用超过 4 Gb(因为这也是 32 位限制,也适用于指针)。这包括 Sun 和 - 我很确定 - 还包括 IBM 实现。我不知道 JRockit 或其他人的 32 位实现是否有大内存选项。

如果您希望达到此限制,您应该强烈考虑为您的生产环境启动一个验证 64 位 JVM 的并行跟踪,以便在 32 位环境出现故障时做好准备。否则你将不得不在压力下做这项工作,这绝不是好事。

Extra information:
On normal consumer versions of Windows, the limit is 2GB 
which is equivalent to 2048M. On Linux and server versions 
of Windows (32-bit) 
the limit is 3GB per process.
于 2013-06-06T07:47:14.193 回答
0

我根据.

于 2013-06-30T02:48:20.430 回答