Повышаем производительность в Java
Если программа, которую вы пишете, может вернуть коллекцию, не содержащую никаких значений, следует удостовериться, что возвращается пустая коллекция, а не Null — это позволит сэкономить вам время на разнообразные проверки, а также избавит от многих ошибок.

Создаем объекты лишь тогда, когда нужно
Пожалуй, создание объектов является одной из наиболее затратных операций в Java. Хорошая практика — создавать их лишь тогда, когда они действительно необходимы.

Deadlocks
Взаимная блокировка потоков (дэдлок) бывает по множеству причин, а полностью уберечься от них в Java 8 весьма сложно. Зачастую, такое происходит, если один синхронизируемый объект ожидает ресурсов, а они заблокированы другим синхронизированным объектом.
Рассмотрим пример тупика потока:

Результат программы будет следующим:

Если изменить порядок вызова потоков, то взаимоблокировок можно избежать:


Резервирование памяти
Ряд Java-приложений обладает повышенной ресурсоемкостью, что может приводить к замедленной работе. Чтобы повысить производительность, можно выделить на Java-машине больше оперативной памяти.

Здесь: • Xms — минимальный пул выделения памяти; • Xmx — максимальный пул; • XX: PermSize — начальный размер, который выделится при запуске JVM; • XX: MaxPermSize — максимальный размер, который выделится при запуске JVM.
Параметры -Xms и -Xmx при запуске JVM
Часто при работе с Java разработчики сталкиваются с такими параметрами запуска JVM, как -Xms и -Xmx . Они отвечают за управление памятью в виртуальной машине Java и могут существенно повлиять на производительность и стабильность работы приложения.
Что такое -Xms и -Xmx ?
Параметр -Xms задает начальный размер (в байтах) кучи, которую JVM выделяет при старте приложения. Это важно, поскольку недостаток памяти при старте может привести к тому, что приложение будет работать медленно или вообще не сможет запуститься.
Параметр -Xmx , наоборот, задает максимальный размер (также в байтах) кучи. Если приложение пытается использовать больше памяти, чем задано параметром -Xmx , то JVM может выбросить исключение OutOfMemoryError .
Пример использования
java -Xms128m -Xmx1024m MyApplication
В этом примере при запуске приложения MyApplication виртуальная машина Java выделит начально 128 мегабайт памяти, а максимальный размер кучи составит 1024 мегабайт (или 1 гигабайт).
Значения по умолчанию
Значения параметров -Xms и -Xmx по умолчанию зависят от конкретной реализации JVM и могут варьироваться. Обычно начальный размер кучи составляет несколько десятков мегабайт, а максимальный — от половины до четверти от всего доступного объема оперативной памяти.
Заключение
Правильное использование параметров -Xms и -Xmx может существенно улучшить производительность и стабильность работы Java-приложений. Однако следует помнить, что задание слишком большого объема памяти может привести к неэффективному использованию ресурсов и замедлению работы всей системы.
Java — что такое параметр -Xms и -Xmx?
В Java -Xms установить начальный размер кучи Java, в то время как -Xmx установить максимальный размер кучи Java.
1. Некоторые java -Xms -Xmx Примеры :
# Start with 128MB of memory, and allow the Java process to use up to 1024MB of memory. java -Xms128m -Xmx1024m
# Start with 256MB of memory, and allow the Java process to use up to 4G (4096MB) of memory. java -Xms256m -Xmx4g
2. Исходный и максимальный размер кучи Java по умолчанию назначается на основе этого алгоритма эргономики , также прочитайте эту статью — Узнайте свой объем памяти кучи Java
3. Если процесс Java превысил -Xmx максимальный размер кучи Java, популярный java.lang.OutOfMemoryError будет брошен.
4. Для других вариантов запустите java -X
> java -X -Xbatch disable background compilation -Xbootclasspath/a: append to end of bootstrap class path -Xcheck:jni perform additional checks for JNI functions -Xcomp forces compilation of methods on first invocation -Xdebug provided for backward compatibility -Xdiag show additional diagnostic messages -Xfuture enable strictest checks, anticipating future default -Xint interpreted mode execution only -Xinternalversion displays more detailed JVM version information than the -version option -Xloggc: log GC status to a file with time stamps -Xmixed mixed mode execution (default) -Xmn sets the initial and maximum size (in bytes) of the heap for the young generation (nursery) -Xms set initial Java heap size -Xmx set maximum Java heap size -Xnoclassgc disable class garbage collection -Xrs reduce use of OS signals by Java/VM (see documentation) -Xshare:auto use shared class data if possible (default) -Xshare:off do not attempt to use shared class data -Xshare:on require using shared class data, otherwise fail. -XshowSettings show all settings and continue -XshowSettings:all show all settings and continue -XshowSettings:locale show all locale related settings and continue -XshowSettings:properties show all property settings and continue -XshowSettings:vm show all vm related settings and continue -XshowSettings:system (Linux Only) show host system or container configuration and continue -Xss set java thread stack size -Xverify sets the mode of the bytecode verifier
Рекомендации
- Настройка виртуальных машин Java (JVM)
- Затмение -Xms / -Xmx
- алгоритм эргономики
- Узнайте свой объем памяти кучи Java
java -Xms -Xmx за что отвинчивает этот параметр? я понял что за ОЗУ под ВМ ну подробней можно)
фанат, не надо свистеть что только мегабайты.
-Xmx1024k
-Xmx512m
-Xmx8g
всё это допустимые значения.
Остальные ответы
-Xms — минимальное ОЗУ
-Xmx — максимальное ОЗУ
В общем выставление разрешимого кол-ва ОЗУ для использование
от 1024 до 2048 например
Del eteМастер (1204) 8 лет назад
спасибо) а то всегда тыкаю одинаковые числа что туда что туда) а у Gb указывать можно?
waac Гуру (3987) нет, только мегабайт
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.