JVM - 我应该分配多少内存

JVM - How much RAM should I allocate

我没有找到关于实际应该分配给 JVM 多少 RAM 的建议。

假设我的电脑有 4GB RAM 并运行 Windows 10。我几乎只在上面使用 Java 个应用程序。我应该用多少 RAM 启动 JVM?系统本身也需要 RAM,所以按照我的逻辑,即使可能,我也不应该分配 4 GB。

这不是一个 black/white 问题,我只是想知道一个想法以及如何得出这个问题的答案。

您可以在命令行中键入 "jconsole" 或 "jmc" 以查看使用了多少内存 java。

I didn't find a suggestion on how much RAM I actually should allocate to the JVM.

JVM 默认设置为主内存的 1/4。如果您有 4 GB,它将默认为 1 GB。

注意:这是一个非常小的系统,您可以获得一些内存如此大的嵌入式设备和电话。

如果您有能力购买更多的内存,那会让您的生活更轻松。

I nearly only use Java Applications on it. With how much RAM should I start the JVM?

除非您有理由更改命令行参数,否则我会保留原样。

注意:您 OS 将需要一些内存,可能是 1 GB,并且您想留出 1 GB 的空闲空间用于缓存等,因此您可以将堆大小增加到 2 GB,但前提是您需要.

What if I run 4 programs in parallel? Can I still allocate 2GB for every of that program?

是的,但这是一个非常糟糕的主意。您的应用程序将开始交换,您的计算机可能变得无法使用。我会尽量将这台机器的总容量保持在 2 GB 以下。

We have a business application here that often reaches to the maximum allocated Ram, which makes it lag a lot if a user has too many "tabs" open.

在这种情况下,您应该确保您拥有适合该工作的正确工具,这意味着确保您的系统有足够的内存。 4 GB 内存售价 18 美元。如果您有一台 4 GB 的业余 PC,我会说,获得更多内存。三年前,我 8 岁的儿子 8 岁时,我给了他一台 8 GB 内存的 PC,因为买少了没有意义。我只会得到 16 GB 或 32 GB 的最小值。那么值得花一些时间对其进行调整,也许吧。