Мы потратили последние несколько месяцев на настройку нашего производственного приложения, чтобы у нас не было полноценных ГХ. Сейчас мы наблюдаем только молодые GC, причем процент молодых GC зависит от скорости выделения объектов.
Наше приложение должно быть как можно ближе к режиму реального времени, поэтому сейчас мы пытаемся сократить количество молодых специалистов по сборке мусора. Как следует из старой аксиомы, большая часть данных, которые мы выделяем, оказывается мусором и отбрасывается на следующем молодом GC. Поэтому нет необходимости предварительно выделять для этого типа данных. Однако существует большое количество объектов (определенных по типу), которые, как мы знаем, превратятся из молодого GC в старый GC.
Имеет ли смысл предварительно распределять эти объекты в более идеальное время (т. Е. При запуске), чтобы в итоге мы выделяли меньше в наше неидеальное время? Я читал литературу, в которой упоминается, что пул объектов не рекомендуется с последними JVM, потому что распределение намного дешевле. Каковы недостатки для предварительного выделения объектов, которые, как я знаю, превратятся в старый GC?