我们可以将硬盘空间用于jvm内存吗?

时间:2016-09-23 17:17:35

标签: java memory

我们是否可以在系统上向Java进程提供堆内存而不是物理ram。

实施例。 系统有8 GB的RAM。 操作系统消耗让我们说2 gb ram 我们启动Java process1并分配4 gb ram 我们启动Java process2并分配4 gb ram

如果ram中的空间不可用,则Java进程使用硬盘缓存来以编程方式将未使用的部分保存在内存中。

1 个答案:

答案 0 :(得分:0)

  1. 您应该记住-Xmx设置不是JVM分配的整个内存。它只是堆的大小(对象的空间),还将分配更多的空间。对于-Xmx4G,整个内存分配可以是例如5Gb。
  2. 您可以将JVM内存交换到磁盘,但之后您的JVM会非常慢。内存清理期间的垃圾收集器通常需要扫描整个内存(即使很少使用的区域),因此在GC循环期间它会进行大量交换。