Java JVM中的内存交换到磁盘

时间:2013-07-04 07:47:59

标签: java memory jvm swap

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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