在这种情况下,java会堆积到磁盘吗?

时间:2016-02-12 14:23:26

标签: java jvm

我可以看到我分配的堆是1312MB,使用的是1300MB。这是否意味着JVM正在将12MB的内存转移到磁盘上?

2 个答案:

答案 0 :(得分:1)

如果您使用了1300 MB的1312 MB堆,这意味着它将执行GC来清理空间。

JVM不会将任何内容交换到磁盘。这是操作系统的工作,JVM不知道是否发生这种情况。

BTW:您希望避免交换堆的任何部分,因为GC假定随机访问内存。如果在交换堆时有GC,则计算机可能无法使用。简而言之,总是让你的堆足够小,以至于它永远不应该交换。

答案 1 :(得分:1)

“看”是什么意思?

我假设您正在通过jstat查找,如果您指的是OC(旧代容量)和OU(使用情况),那么这意味着您的进程几乎耗尽了旧代部分的所有内存。这意味着你只有12MB​​可以免费使用(查看完整GC的数量,可能它每秒都在运行)