Как получить время ожидания выделения zGC из JVM?
Как я могу получить общее время ожидания выделения из-за zGC Garbage Collection в моем приложении Java из JVM (не gc.log
)?
Я видел этот интересный ответ: /questions/41214548/izmerenie-vremeni-provedennogo-na-gc-v-jvm/41214550#41214550, но, глядя на документы для GarbageCollectorMXBean, есть только два метода, ни один из которых, похоже, не различает общее время, затраченное на то, что приложение Java чтобы остановить GC:
Резюме метода
длинный
getCollectionCount()
- Возвращает общее количество произведенных коллекций.длинный
getCollectionTime()
- Возвращает приблизительное время накопленного сбора в миллисекундах.
Что я действительно хочу знать, так это время, потраченное на остановку полного распределения из-за сборщиков мусора (обратите внимание, что меня не интересуют безопасные точки). Как говорится в этой статье в Java Magazine:
Многие алгоритмы сборки мусора были опробованы и протестированы на протяжении многих лет, многократно улучшая их производительность. У таких алгоритмов есть две общие области производительности. Первая - это производительность сборки мусора. Сколько времени ЦП вашего приложения тратится на выполнение работы по сборке мусора, а не на выполнение кода приложения? Вторая - это созданная задержка, то есть задержка отдельных пауз.
Будем очень благодарны любой помощи.