5916
Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез
как тебе идея вайб коллектора?
чисто на вайбе работает: хочет - соберет мусор, не хочет - не соберет или добавит еще
Не думайте об этом, берите любой коллектор. Все эти размышления об абстрактном разбиваются о суровую реальность бытия в любом конкретном случае.
Читать полностью…
Для подавляющего большинства случаев что-то более продвинутое, чем G1 и не нужно. А часто и более продвинутое, чем Parallel. А если 1 CPU, так и Serial, хотя и Parallel деградирует до него всё равно. -Xms -Xmx и вперёд.
Читать полностью…
На 8-й точно нужно, есть несколько легаси проектов с ней в рантайме, а вот на свежих вроде да, не особо нужен. Какой-то из этих двух по моему вообще как Deprecated помечен
Читать полностью…
Что такое тип вм? Это про UseContainerSupport? Или AlwaysActAsServerClassMachine?
Читать полностью…
Вопрос был, как правильно их указать, best practices) А то можно указать active processors count 4 при limits.cpu 500m и сервис тротлить начнет (по крайней мере так опытные дядьки говорят, я не проверял 🙃)
Читать полностью…
Вроде в згц тоже в итоге поколения добавили
Я бы их с шенандой отделял по принципу эвакуации при помощи самого приложения
g1 же так или иначе самостоятельно эвакуировать надо, нет? может, имелся в виду zgc?
Читать полностью…
Не оно? https://learn.microsoft.com/en-us/azure/developer/java/containers/overview
Читать полностью…
Продвинутые gc потребляют больше памяти и процессора, поэтому на скромных лимитах и ненагруженных сервисах serialgc может иметь смысл.
Читать полностью…
UseEpsilonGC:
Best Practices & Warnings Not for Production: Do not use Epsilon in production unless your application generates absolutely zero garbage, or is a short-lived process.
это видимо для CLI утилей
а расскажите для каких ситуаций абстрактно лучше поколения, а для каких нет. Видел, что гошники все никак до поколенческих не дойдут, а у нас что ни гц, то обязательно прикрутят поколения
Читать полностью…
Да, но как будто поколения - это больше про то, когда надо throughput на летенси, но тут надо Шипилева звать конечно)
Читать полностью…
если у тебя io нагрузка, то может и не начнет и ты доутилизируешь то, что надо
бэйслайн 75/80 процентов - хороший старт, если менее 2гигов и 2 цпу, то ручкам указываешь server vm type и нужный gc
дальше только тесты
Ты можешь явно указать тип вм, тип сборщика, active processors count и тд
Читать полностью…
Как будто они проектировались ортогонально многоядерности. Поколенческие гц тоже умеют в параллельность
Читать полностью…
когда много ядер можно g1 или шенанду, там сборка oldgen без stw
Читать полностью…
https://developers.redhat.com/articles/2022/04/19/java-17-whats-new-openjdks-container-awareness#recent_changes_in_openjdk_s_container_awareness_code
https://developers.redhat.com/articles/2022/04/19/best-practices-java-single-core-containers#java_application_lifecycle
я бы даже так сказал: пока это не является реально диагностированной проблемой приложения - не стоит лезть руками в настройки GC
Читать полностью…
если каждый инстанс не нагруженный и без упоминания миллисек в SLA - мало кто заметит разницу
ценность оптимизации мелких аппликов в докере очень переоценена
я под свои приложение обычно после выхода в прод/или вплотную перед делаю отдельный ресеч что и как
на прошлом месте работы у нас была небольшая статейка как под наше приложение сайзить память, и вот там мы сайзили через -Xms, -Xmx