【问题标题】:Increasing Java heap size in Eclipse - using virtual memory在 Eclipse 中增加 Java 堆大小 - 使用虚拟内存
【发布时间】:2013-02-25 06:36:43
【问题描述】:

我在 Eclipse(Windows) 中运行一个程序,需要相当大的内存。将-Xmx1500m 传递给程序似乎还不够,而Eclipse 不允许我分配更大的值。有了这个配置,我得到了内存不足的异常。 我将虚拟内存大小增加到40GB。有没有办法让我的程序可以使用这个内存?我在 C# 中轻松完成了这项工作,几乎完成了同样的工作。

【问题讨论】:

  • 你没有为你的程序设置传递参数。
  • 你必须在eclipse中为你的程序设置参数。如果需要超过 4GB 内存,则需要 64 位 mashine 和 64 位 JVM。
  • 你的意思是可以传递 -Xmx30000m 参数?

标签: java eclipse virtual-memory


【解决方案1】:

你需要运行一个64Bit vm来允许超过-Xmx1500m

您可以在 程序的运行设置 中指定它,并且不需要在 eclipse.ini 中应用它,它是用于 eclipse 本身的。

但是:给 java-vm 提供比系统上实际(物理、空闲)内存更多的内存并不是一个好主意,因为 GC 在运行时会遍历内存的许多区域,这将导致从/向磁盘读取/写入内存 - 意味着交换。而这又会导致非常糟糕的表现。在这种情况下,您应该考虑是什么在消耗内存,以及是否有办法在外部管理这些数据 - 在磁盘或一些 MemoryBuffers 上。

【讨论】:

    【解决方案2】:

    你使用 32 位 JVM 还是 64 位? 使用 64 位 JVM。 我不确定 64 位的大小限制,但肯定超过 32 位。

    试试这个: java -d64 -Xms512m -Xmx60g 你的程序

    它将 60gb 设置为最大堆大小。

    【讨论】:

    • 他正在尝试使用 eclipse 而不是在命令提示符下运行程序。这无疑会奏效。
    • 32 位 = 2^32 位 = 4Gib 64 位 = 2^64 位 = 16EiB 单个 exabit 是 1.000.000.000 大于 1 GB ;)
    【解决方案3】:

    您可以在“运行配置对话框”中配置堆大小。

    【讨论】:

      【解决方案4】:

      我认为您需要增加可供 eclipse 使用的内存。

      修改eclipse.ini 文件中的-Xmx 选项(在Windows 机器上)。

      【讨论】:

        【解决方案5】:

        在你解压 eclipse 的地方,寻找eclipse.ini 修改它

        【讨论】:

          【解决方案6】:

          去你的eclipse根目录,eclipse.exe文件所在的位置,你会发现eclipse配置文件(eclipse.ini)打开了那个文件,你需要做如下修改

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-11-16
            • 2013-02-14
            • 1970-01-01
            • 1970-01-01
            • 2012-12-23
            • 2010-12-06
            • 1970-01-01
            相关资源
            最近更新 更多