如何将 Java 进程限制在一定数量的 RAM 内?

如何将 Java 进程限制在一定数量的 RAM 内?

我正在尝试将 Minecraft 限制在一定内存量。为此,我使用以下行从批处理文件中启动它:

javaw -Xms256M -Xmx256M -cp Minecraft.exe net.minecraft.LauncherFrame

但它通常会超过 800 MB。

我还尝试转到控制面板中的 Java 小程序。然后转到 Java 选项卡/视图...,然后添加以下运行时参数:

-Xmx256m

那也没什么帮助。

我该怎么做才能将 Java 进程(或者至少是 Minecraft)限制为 256 MB 的 RAM。

答案1

-Xmx仅限制 Java 堆。代码本身、JVM、OS DLL、内部 Java 数据结构和线程堆栈均占用额外内存。就您而言,它们显然占用了超过 550 MB 的 RAM。没有堆设置会将总内存量控制在 256 MB 以下。

但请注意,代码部分可能在进程间共享。在您的进程中使用 5 MB RAM 的 DLL 通常会在另一个进程中使用相同的 5MB RAM。

相关内容