Почему "из космоса" и "в космос" не равны в jvm - PullRequest
0 голосов
/ 10 апреля 2019
  • окружающая среда: jdk8u101
  • ОС: centos6
  • опишите: "из космоса" и "в космос" не равны Эдему кучи. На мой взгляд, «из космоса» и «в космос» используют алгоритм копирования, их пространство всегда будет оставаться равным.
  • Может ли кто-нибудь мне помочь?
  • Мне не удалось вставить скриншот, поэтому я прикрепил основные данные ниже

[root@05c46b9d1fc1 /]# jmap -heap 1
Attaching to process ID 1, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.101-b13

using thread-local object allocation.
Parallel GC with 33 thread(s)
Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 4294967296 (4096.0MB)
   NewSize                  = 357564416 (341.0MB)
   MaxNewSize               = 1431306240 (1365.0MB)
   OldSize                  = 716177408 (683.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 342360064 (326.5MB)
   used     = 251910632 (240.2406997680664MB)
   free     = 90449432 (86.2593002319336MB)
   73.58061248639093% used
From Space:
   capacity = 23068672 (22.0MB)
   used     = 0 (0.0MB)
   free     = 23068672 (22.0MB)
   0.0% used
To Space:
   capacity = 44564480 (42.5MB)
   used     = 0 (0.0MB)
   free     = 44564480 (42.5MB)
   0.0% used
PS Old Generation
   capacity = 763363328 (728.0MB)
   used     = 26507512 (25.27953338623047MB)
   free     = 736855816 (702.7204666137695MB)
   3.47246337722946% used

1 Ответ

0 голосов
/ 10 апреля 2019

Если предположить, что куча растет (потому что ваш рабочий набор растет), то JVM сохранит соотношение нового размера пространства к старому размеру пространства.Для этого ему нужно выделить больше пространства «на», чем «из» пространства.

Для подробного понимания того, как JVM рассчитывает размеры пространств, я предлагаю вам загрузить и тщательно изучить источниккод для конкретной версии (выпуска и исправления) OpenJDK, которую вы хотите понять.

...