Сегодня я покажу вам самые важные параметры JVM, которые помогут вам оптимизировать работу вашего Java-приложения. Эти флаги влияют на производительность, управление памятью и отладку.
🔥 Управление памятью:
-
-Xms<size> – задает начальный размер кучи.-
-Xmx<size> – задает максимальный размер кучи.-
-XX:NewRatio=<n> – определяет соотношение между молодым и старым поколением.-
-XX:SurvivorRatio=<n> – соотношение между Eden и Survivor.⚡ Гаражная сборка (GC):
-
-XX:+UseG1GC – включает G1 Garbage Collector (по умолчанию в Java 9+).-
-XX:+UseParallelGC – включает Parallel GC.-
-XX:+UseZGC – включает экспериментальный ZGC (минимальная пауза).-
-XX:+UseShenandoahGC – еще один GC с низкими задержками.🛠️ Диагностика и отладка:
-
-XX:+PrintGCDetails – подробный вывод информации о сборке мусора.-
-XX:+HeapDumpOnOutOfMemoryError – дамп памяти при OOM.-
-XX:HeapDumpPath=<path> – указывает путь для дампа памяти.-
-XX:+ExitOnOutOfMemoryError – завершает JVM при OOM.🏎️ Оптимизация JIT:
-
-XX:+TieredCompilation – адаптивная компиляция кода.-
-XX:+UseStringDeduplication – уменьшает использование памяти строками.-
-XX:+AlwaysPreTouch – аллокация памяти заранее (полезно для больших heap'ов).Попробуйте поэкспериментировать с этими параметрами и посмотрите, как они влияют на производительность вашего приложения!
Какие параметры JVM используете вы? Пишите в комментариях!
📲 Мы в MAX
👉@BookJava