Можем ли мы увеличить приоритет потока сборки мусора в Java - PullRequest
2 голосов
/ 24 января 2010

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

Ответы [ 3 ]

3 голосов
/ 24 января 2010

Существует множество параметров командной строки, которые определяют поведение сборки мусора в JVM от Sun.

Это немного усложняется, но они описаны здесь: http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html

2 голосов
/ 24 января 2010

Как правило, вы хотите, чтобы сборщик мусора потреблял как можно меньше системных ресурсов, и, если у вас нет веских оснований для этого, вы должны оставить системные настройки по умолчанию, поскольку ваши настройки могут быть недействительными при изменении или обновлении JVM.

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

1 голос
/ 24 января 2010

Не полагайтесь на приоритет потока демона для выполнения работы. Скажем, у java есть 10-уровневый приоритет потока, но когда он сопоставляется с нативным потоком ОС (скажем, Solaris с 170 уровнями приоритета), приоритет перераспределяется. Более того, в Windows NT есть особая привычка неопределенно увеличивать приоритет потоков с каждым циклом ЦП. Попытка управления потоком приложения с помощью приоритета потока может привести к проблемам с переносимостью.

Для получения более подробной информации см. Этот вопрос SO

В зависимости от реализации JVM потоки с более высоким приоритетом могут по-прежнему вытеснять потоки с более низким приоритетом в схеме временного разделения. Добавление временных интервалов смешивает обработку между потоками с одинаковым приоритетом; на многопроцессорной машине потоки могут даже выполняться одновременно. К сожалению, эта функция может привести к различиям в поведении вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...