2

我正在使用 64 位 Linux 和 Java JVM。我想确认JVM使用的内存是否小于机器的物理内存大小,操作系统不会进行磁盘内存交换?

4

2 回答 2

2

不,这不一定是真的。物理内存由所有进程以及许多其他内核事物(例如磁盘缓存)共享。因此,应用程序使用的虚拟内存量并不是唯一的考虑因素。

于 2013-07-04T07:50:04.923 回答
2

您可以使用 jvm 参数 -Xmx512m 启动您的 java 应用程序,这将告诉 jvm 为您的堆使用最多 512MB 的内存。还要考虑到线程堆栈大小存在另一个参数 -Xss512k。因此,您的 jvm 将使用的内存量将是最大堆 + (threadCount * threadStackSize) + 更多用于 JIT 编译和 GC 数据结构的内存,具体取决于您使用的 GC 收集器

考虑到这一点,您可以确保您的 jvm 不会使用比您机器中的内存更多的内存

于 2013-07-04T08:27:17.310 回答