JEP 242: JVM Trace Events for Failed Allocations
События трассировки JVM для неудачных выделений памяти
| Ответственный | Marcus Larsson |
| Тип | Feature |
| Область | JDK |
| Статус | Closed / Delivered |
| Выпуск | 8u60 |
| Компонент | hotspot / gc |
| Обсуждение | hotspot dash dev at openjdk dot java dot net |
| Трудоёмкость | M |
| Длительность | M |
| Рецензенты | Mikael Vidstedt |
| Одобрен | Mikael Vidstedt |
| Создан | 2014/10/10 02:37 |
| Обновлён | 2015/06/25 17:29 |
| Задача | 8060092 |
Аннотация
Добавить события трассировки, которые предоставляют информацию о потоках, запускающих операции сборки мусора, и о потоках, ожидающих завершения таких операций.
Описание
Мы определим одно новое событие трассировки. Это событие будут отправлять потоки, у которых выделение памяти не удалось и поэтому требуется сборка мусора.
Если несколько потоков запускают сборку мусора одновременно, событие отправит каждый из них. Однако запустить сборку мусора удастся только одному из них, и этот поток отправит событие сборки мусора. Так можно отследить информацию о выделениях памяти, ожидающих сборки мусора, просмотрев события allocation-requiring-gc (новое событие), предшествующие событию сборки мусора.
Событие будет содержать размер выделения и идентификатор ожидающей операции сборки мусора.
Влияние генерации этих событий на производительность будет пренебрежимо малым.