我可以看到我分配的堆是1312MB,使用的是1300MB。这是否意味着JVM正在将12MB的内存转移到磁盘上?
答案 0 :(得分:1)
如果您使用了1300 MB的1312 MB堆,这意味着它将执行GC来清理空间。
JVM不会将任何内容交换到磁盘。这是操作系统的工作,JVM不知道是否发生这种情况。
BTW:您希望避免交换堆的任何部分,因为GC假定随机访问内存。如果在交换堆时有GC,则计算机可能无法使用。简而言之,总是让你的堆足够小,以至于它永远不应该交换。
答案 1 :(得分:1)
“看”是什么意思?
我假设您正在通过jstat查找,如果您指的是OC(旧代容量)和OU(使用情况),那么这意味着您的进程几乎耗尽了旧代部分的所有内存。这意味着你只有12MB可以免费使用(查看完整GC的数量,可能它每秒都在运行)