【问题标题】:java- use a file for java heap space bigger than 1Gb in a 32bit windowsjava- 在 32 位窗口中使用大于 1Gb 的 java 堆空间文件
【发布时间】:2012-05-03 06:17:02
【问题描述】:

使用:-Xms1000M -Xmx4000M -mx1000m 我仍然得到 java.lang.OutOfMemoryError: Java heap space

我正在使用 jai-imageio 库读取 100Mb JPEG2000 文件,一旦被 imageio 库解压缩,它可能需要超过 1Gb 的堆空间。 我使用的是 32 位 windows JVM,所以我不能创建超过 1G 的堆空间。

看到这个帖子:java- OutOfMemoryError with -Xms1000M -Xmx4000M -mx1000m

那么,有没有办法告诉 JVM 使用文件作为堆内存,而不是 ram 内存(即使在 32 位窗口中也能够拥有大于 1Gb 的堆空间)?

【问题讨论】:

标签: java


【解决方案1】:

这是操作系统的限制(以及地址中的位数)。您需要使用 64 位操作系统和 64 位 JVM。

当您添加到交换空间时,您允许 JVM 将此文件用作交换空间。注意:这样做会使您的性能降低 10 倍或更多。

您应该能够在 32 位 Windows 上获得 1.2 GB 到 1.5 GB 的堆。

这里提出了一个类似的问题。 How much -XX:MaxPermSize size i can mention for 4GB and 8GB Ram and calculation for this?

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多