Задать вопрос
@turdubekov
Студент

Кушает ли память логирование?

Есть высоко нагруженная api, в который каждую секунду поступает данные. У меня есть привычка логировать весь цикл обработки поступающих данных.
Проблема: При просмотре потребление памяти в графане график постоянно ползет вверх.
У меня есть подозрение что чрезмерное логирование кушает память.
64bc237686a4e588303114.png

Вопрос: Так ли это?

P.s Логи нигде на храню, отобразил и все. Используемые технологии: Spring boot + java 11 + @Slf4 (от ломбок)
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
xez
@xez Куратор тега Java
TL Junior Roo
Если вы, во время логирования, создаете объект - его надо где-то хранить. Когда объект выйдет за пределы видимости его может съесть gc.
Строки, напомню - тоже объекты, к тому же иммутабельные.
Ответ написан
Комментировать
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Java медленно потребляет память даже в состоянии покоя. Видимо системные треды что-то аллоцируют. Я как-то создавал пустое main приложение которое стоит на паузе и на графике JVisualVM я наблюдал медленный рост Eden space. Попробуй тоже такой эксперимент.

Вообще тебя это не должно беспокоить. Это нормальный цикл работы управляемой памяти. Главное что в тот
момент когда срабатывает System.gc память быстро очищается без переноса объектов в Survival.

Сам процесс логгирования тоже можно писать оптимально или не оптимально. Покажи исходники и хабр посмотрит что там можно улучшить. Здесь разные логгеры log4j, log4-2 могут использовать разные механики для оптимизации.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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