В распечатке кучи Java 8 вы можете увидеть строку, которая выглядит так:
Metaspace используется 2425K, емкость 4498K, зафиксировано 4864K, зарезервировано 1056768K
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/considerations.html пытается объяснить строку:
В строке, начинающейся с Metaspace, значение используется - это объем пространства, используемого для загруженных классов. Значение емкость - это пространство, доступное для метаданных в выделенных в настоящее время фрагментах. Значение зафиксировано - это объем свободного места для кусков. Значение зарезервировано - это объем зарезервированного места (но не обязательно зафиксированный) для метаданных.
Опять же, из приведенной выше ссылки:
Пространство запрашивается у ОС, а затем делится на куски. Погрузчик класса выделяет пространство для метаданных из своих кусков (кусок привязан к определенному загрузчику класса).
Я хочу знать, что означает каждое поле (используется, емкость, зафиксировано, зарезервировано), но я стараюсь понять приведенные выше определения.
Я понимаю, что метапространство вырезано из виртуального адресного пространства процесса JVM. JVM резервирует начальный размер при запуске на основе -XX: MetaspaceSize, который имеет недокументированные значения по умолчанию для платформы. Я предполагаю, что зарезервировано относится к общему размеру метаспаса. Пространство делится на куски. Я не уверен, что каждый кусок имеет одинаковый размер. Каждый фрагмент содержит метаданные класса, связанные с загрузчиком одного класса.
Емкость и звучит как свободное пространство для меня (на основе определений из ссылки). Поскольку метаданные хранятся в кусках, я бы предположил, что используемая + емкость была бы равной, но это не так. Может быть, совершенное означает зарезервированное пространство, которое используется, но тогда то, что могло бы означать? Используемое пространство, используемое метаданными? Затем, какие другие способы использовать пространство?
Надеюсь, ты видишь мое замешательство. Я был бы признателен за разъяснения в отношении определений.