Вопрос по java, garbage-collection, jvm – Что означают слова «реальный», «пользователь» и «sys» в журнале Java CMS gc?

11

Для следующей версии Java:

Версия OpenJDK "1.6.0"

Среда выполнения OpenJDK (сборка 1.6.0-b23)

64-битная серверная виртуальная машина OpenJDK (сборка 20.0-b11, смешанный режим)

С помощью следующих флагов GC:

-verbose: дс

-XX: + UseConcMarkSweepGC

-XX: + CMSClassUnloadingEnabled

-XX: + PrintGCDetails

-XX: + PrintGCDateStamps

Мы получаем строки журнала, такие как:

2012-11-09T16: 46: 53.438-0100: [CMS-concurrent-mark: 4.039 / 4.060 секунд] [Время: пользователь = 4,09 сис = 35,05, реальное = 4,06 с]

Начальный "4.039 / 4.060 секунд " должен в соответствии сhttps://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs означает, что одновременная маркировка заняла всего 4,039 секунды времени процессора и 4,060 секунды времени стены (включая доходность для других потоков).

Но что здесь означают пользователь, sys и реальные значения?

Да, но это классический смысл Unix: Real - время настенных часов, User - количество процессорного времени, Sys - количество процессорного времени, проведенного в ядре внутри процесса. Я нена самом деле не вижу, как эти определения имеют смысл в этом контексте gc ... fornwall
Посмотри наstackoverflow.com/questions/556405/... Santosh Gokak

Ваш Ответ

1   ответ
5
  1. Системный пользователь и пользователь - исключительно время процессора. Следовательно, они не включают время, когда процесс заблокирован для процессора или выполняет операции ввода-вывода и т. Д.

  2. Время GC обычно должно быть похоже на время пользователя sys +, но если процесс заблокирован или ожидает, то он будет выше. Это было бы верно для последовательного коллектора и однопроцессорной коробки. Однако в многопроцессорных средах (с параллельными коллекторами) время GC будет меньше, чем время sys + user, поскольку имеется несколько процессоров.

  3. Реальное время будет похоже на время GC.

Похожие вопросы