【发布时间】:2016-06-13 06:41:10
【问题描述】:
我没有找到关于我实际上应该为 JVM 分配多少 RAM 的建议。
假设我的电脑有 4GB 内存并运行 Windows 10。我几乎只在上面使用 Java 应用程序。我应该用多少 RAM 启动 JVM?系统本身也需要 RAM,因此按照我的逻辑,即使可能,我也不应该分配 4 GB。
这不是一个非黑即白的问题,我只是想知道如何在这个问题中找到答案。
【问题讨论】:
-
对此没有好的通用答案,这完全取决于您使用的 Java 程序需要多少 RAM。
-
@Jesper:如果我并行运行 4 个程序会怎样?我还能为每个程序分配 2GB 空间吗?或者每个应用程序会单独占用 2GB,计算机可能会耗尽内存?
-
当您启动 Java 程序时,您会启动一个新的 JVM 实例,它最多会分配您指定的任何内存量(使用
-Xmx选项)。 4 个程序 = 4 个 JVM,如果您使用-Xmx=2G,每个 JVM 最多分配 2 GB。 -
除非您遇到与内存相关的问题,否则我建议您使用 JVM 默认值,这对于许多用途都很合理。
-
@ThorbjørnRavnAndersen 问题是:我们这里有一个业务应用程序,它经常达到分配的最大 RAM,如果用户打开了太多“标签”,这会导致很多延迟。使用“默认值”不会使其更具确定性。我们可能会增加堆大小并限制打开标签的数量。
标签: java jvm ram jvm-arguments