Java runtime more memory

4 Tuning the Java Runtime System

Java SE 6.0 provides two implementations of the HotSpot Java virtual machine (JVM):

  • The client VM is tuned for reducing startup time and memory footprint. Invoke it by using the -client JVM command-line option.
  • The server VM is designed for maximum program execution speed. Invoke it by using the -server JVM command-line option.

By default, the GlassFish Server uses the JVM setting appropriate to the purpose:

  • Developer Profile, targeted at application developers, uses the -client JVM flag to optimize startup performance and conserve memory resources.
  • Enterprise Profile, targeted at production deployments, uses the -server JVM flag to maximize program execution speed.

You can override the default JVM options by following the instructions in «Administering JVM Options» in Oracle GlassFish Server Administration Guide . If using the Administration Console, navigate to the Configurations> configuration-name >JVM Settings node, and then click the JVM Options tab. Refer to the online help for complete information about the settings on this page.

For more information on server-class machine detection in Java SE 6.0, see Server-Class Machine Detection.

For more information on JVMs, see Java Virtual Machines.

Start Options

In some situations, performance can be improved by using large page sizes. For Ultrasparc CMT systems, include the -XX:+UseLargePages and -XX:LargePageSizeInBytes=256m arguments with your JVM tuning.

Читайте также:  Html align table headers

Tuning High Availability Persistence

If session s1 and s2 need to be replicated to an instance (backup server), the replication module batches the replication messages to be sent to that instance instead of sending separate replication messages. This improves performance. In configurations in which a lot of session replication is performed, you may find better performance by tuning the org.shoal.cache.transmitter.max.batch.size system property. This property determines the number of replication messages that constitute one batch.

The default value for this property is 20 . You can try setting it as high as 90 , depending on system loads. Like all system properties, this property is set with the -D flag in your Java arguments.

Managing Memory and Garbage Collection

The efficiency of any application depends on how well memory and garbage collection are managed. The following sections provide information on optimizing memory and allocation functions:

Tuning the Garbage Collector

Garbage collection (GC) reclaims the heap space previously allocated to objects no longer needed. The process of locating and removing the dead objects can stall any application and consume as much as 25 percent throughput.

Almost all Java Runtime Environments come with a generational object memory system and sophisticated GC algorithms. A generational memory system divides the heap into a few carefully sized partitions called generations . The efficiency of a generational memory system is based on the observation that most of the objects are short lived. As these objects accumulate, a low memory condition occurs forcing GC to take place.

The heap space is divided into the old and the new generation. The new generation includes the new object space (eden), and two survivor spaces. The JVM allocates new objects in the eden space, and moves longer lived objects from the new generation to the old generation.

The young generation uses a fast copying garbage collector which employs two semi-spaces (survivor spaces) in the eden, copying surviving objects from one survivor space to the second. Objects that survive multiple young space collections are tenured , meaning they are copied to the tenured generation. The tenured generation is larger and fills up less quickly. So, it is garbage collected less frequently; and each collection takes longer than a young space only collection. Collecting the tenured space is also referred to as doing a full generation collection .

The frequent young space collections are quick (a few milliseconds), while the full generation collection takes a longer (tens of milliseconds to a few seconds, depending upon the heap size).

Other GC algorithms, such as the Concurrent Mark Sweep (CMS) algorithm, are incremental. They divide the full GC into several incremental pieces. This provides a high probability of small pauses. This process comes with an overhead and is not required for enterprise web applications.

When the new generation fills up, it triggers a minor collection in which the surviving objects are moved to the old generation. When the old generation fills up, it triggers a major collection which involves the entire object heap.

Both HotSpot and Solaris JDK use thread local object allocation pools for lock-free, fast, and scalable object allocation. So, custom object pooling is not often required. Consider pooling only if object construction cost is high and significantly affects execution profiles.

Choosing the Garbage Collection Algorithm

The default collector for Java server class machines will optimize for throughput but be tolerant of somewhat long pause times. If you would prefer to have minimal pause times at the expense of some throughput and increased CPU usage, consider using the CMS collector.

To use the CMS collector
  1. Make sure that the system is not using 100 percent of its CPU.
  2. Configure the CMS collector in the server instance. To do this, add the following JVM options:
    • -XX:+UseConcMarkSweepGC
    • -XX:SoftRefLRUPolicyMSPerMB=1

Источник

Как выделить Java больше оперативной памяти

Из-за взаимодействия программного компонента Java с разработанными продуктами могут возникать ошибки, решение которых лежит на плечах пользователя. Оно достигается двумя путями: переустановкой модуля и выделением дополнительной памяти Java. С каждой ситуацией стоит разобраться отдельно.

Зачем увеличивать память Java

Задачу по увеличению Java памяти пользователи ставят перед собой в следующих случаях:

  • Не запускается игра Minecraft. Геймер получает сообщение, что для запуска не хватает виртуальной памяти, хотя минимальные требования по оперативке соблюдены.
  • Проблема с памятью кучи Java. Написанное серверное приложение не запускается. Для его полноценной работы требуется 512 Мб оперативки на компьютере, но трудности с запуском возникают даже при имеющихся 4 Гб.

Исправить проблему можно двумя способами.

Как выделить память Java

Выделить Джава-модулю больше оперативной памяти возможно через «Панель управления». Способ удобнее рассмотреть на примере проблем с запуском игры Minecraft.

  1. Открывается «Панель управления».
  2. В поиске нужно найти Java-модуль.
  3. После запуска ПО в шапке выбирается раздел Java. панель управления Java
  4. В запустившемся окне открывается View.
  5. Для корректной работы модуля удалите лишние строки, если они есть. Должна остаться только одна, где указана последняя версия ПО. Важно обратить внимание на разрядность. параметры Java на компьютере
  6. Для увеличения памяти производится изменение столбца Runtime Parameters. При этом параметры записываются в следующем виде: -Xincgc-Xmx2048M, где 2048 – 2 Гб выделяемой оперативки. Важно писать без пробелов. В 32-битной ОС рекомендуется выделение 768 Мб.
  7. Нажимается ОК, ОС перезагружается.

Расшифровка используемых команд:

  • Xincgc – освобождает неиспользуемые объекты из памяти;
  • Xmx – максимальный объем оперативки;
  • Xms – минимальный объем.

Если это не помогло запустить Minecraft, переустановите модуль Java и игру. После удаления очистите реестр с помощью CCleaner.

Увеличение памяти с помощью переменных среды

Увеличить оперативную память в Джаве можно с помощью переменных системной среды. В виртуальной машине прописываются два аргумента, упомянутых ранее: -Xms и -Xmx.

Чтобы система воспринимала написанные аргументы, нужно добавить переменную с названием «_JAVA_OPTIONS».

Если количество памяти, отведенной для работы Java, в два раза меньше имеющейся оперативки, то команды прописываются по следующей инструкции:

системные переменные Windows

  1. Открываются «Свойства» на ярлыке «Мой компьютер».
  2. Из левой части выбираются «Дополнительные параметры системы».
  3. На вкладке «Дополнительно» производится одиночный клик по «Переменные среды».
  4. Нажимается кнопка «Создать».
  5. Имя переменной: «_JAVA_OPTIONS», аргументы: «-Xms512m -Xmx1024m».

В примере объем оперативки составлял 1 Гб.

Видео: 3 способа выделить больше памяти Java.

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

Источник

Как увеличить память Java в Windows

В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту.

Команда контент-менеджеров wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества.

Количество просмотров этой статьи: 63 857.

В этой статье мы расскажем вам, как в Windows 7 увеличить объем оперативной памяти (ОЗУ), который может использоваться Java-программой. Увеличение объема ОЗУ позволит Java-программам работать быстрее и потреблять больше системных ресурсов — таким образом, Java-процессы будут быстрее завершаться.

Изображение с названием Increase Java Memory in Windows 7 Step 1

  • Перейдите на страницу https://www.java.com/ru/download/ в веб-браузере компьютера.
  • Нажмите «Загрузить Java бесплатно» посередине страницы.
  • Нажмите «Согласиться и начать бесплатную загрузку» в верхней части страницы.
  • Дважды щелкните по скачанному файлу.
  • Следуйте инструкциям на экране.

Изображение с названием Increase Java Memory in Windows 7 Step 2

Windows 7 Start

Изображение с названием Increase Java Memory in Windows 7 Step 3

Щелкните по Панель управления . Эта опция находится в правой части меню «Пуск». Откроется Панель управления.

Изображение с названием Increase Java Memory in Windows 7 Step 4

Изображение с названием Increase Java Memory in Windows 7 Step 5

Щелкните по Крупные значки . Эта опция находится в меню. Содержимое Панели управления отобразится в виде отдельных значков, а не ссылок.

Изображение с названием Increase Java Memory in Windows 7 Step 6

Изображение с названием Increase Java Memory in Windows 7 Step 7

Изображение с названием Increase Java Memory in Windows 7 Step 8

Дважды щелкните по текстовому полю «Runtime Parameters» (Параметры времени выполнения). Это пустое текстовое поле справа от номера версии Java. Курсор мыши отобразится в текстовом поле.

Изображение с названием Increase Java Memory in Windows 7 Step 9

  • -Xms1024m : Java будет использовать 1 ГБ ОЗУ.
  • -Xms2048m : Java будет использовать 2 ГБ ОЗУ.
  • -Xms3072m : Java будет использовать 3 ГБ ОЗУ.

Изображение с названием Increase Java Memory in Windows 7 Step 10

Изображение с названием Increase Java Memory in Windows 7 Step 11

Нажмите Apply (Применить). Эта кнопка находится в нижней части окна. Изменения вступят в силу.

Изображение с названием Increase Java Memory in Windows 7 Step 12

Щелкните по OK . Эта кнопка находится в нижней части окна. Окно «Java» закроется. Теперь программы Java будут использовать заданный объем ОЗУ.

  • Чтобы выяснить, какой максимальный объем оперативной памяти доступен на компьютере, щелкните правой кнопкой по значку «Компьютер», в меню выберите «Свойства» и найдите строку «Установленная память (ОЗУ)». [1] X Источник информации
  • Если запустить Java-программу с измененными параметрами памяти, это может привести к замедлению работы компьютера при попытке использовать другие программы (например, веб-браузер).

Дополнительные статьи

запустить файл Python с помощью Командной строки Windows

написать программу в блокноте

сделать задержку в командном файле

научиться писать программы

добавлять и удалять учетные записи пользователей через командную строку Windows

писать компьютерные программы

создать очень простую программу в Python

использовать DOSBox

создать калькулятор, используя язык HTML

использовать Net Send

скомпилировать программу C, используя компилятор GNU Compiler (GCC)

менять цвета в Командной строке

написать первую программу на Java

Об этой статье

В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту.

Команда контент-менеджеров wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества. Количество просмотров этой статьи: 63 857.

Источник

Оцените статью