При использовании jvisualvm для определения проблем с производительностью я обнаружил, что мое приложение java (1000 классов) создает много временных объектов (например, X) во время операции, которые имеют право на GC после операции, только небольшая количество объектов (скажем, Y) являются неприменимыми. Уменьшение количества временных объектов может привести к повышению производительности (циклы CPU для создания, удаления объектов и объектов ОЗУ). Отсутствует информация о типах или временных объектах, которые создаются. Я могу посетить код и попытаться выяснить, но это займет много времени, чтобы проследить все потоки кода.обратные вызовы сборщика мусора Java
Альтернативный метод, о котором я могу думать, - попросить GC поместить сообщение в журнал, в котором указывается, какой тип объекта будет освобожден, это даст мне подсказки о возможных виновниках.
Есть ли у java GC какие-либо средства для предоставления этой информации?
Используйте инструменты, такие как AppDynamics (Есть и другие варианты тоже), которые должны быстро помочь вам в определении спорного кода. – kosa
Для того, что стоит, сборщик мусора Java - это действительно очень хорошо, когда вы сталкиваетесь с ситуацией, когда создано очень много короткоживущих объектов. –