Можем ли мы иметь настроенный сборщик мусора в Java? - PullRequest
2 голосов
/ 25 января 2010

Как мы знаем, сборщик мусора Java является потоком с низким приоритетом. И в Java мы можем создать любой поток с высоким приоритетом. Поэтому возможно ли иметь собственный настраиваемый поток сборщика мусора с переменным приоритетом (мы можем установить в зависимости от уровня управления памятью).

Кто-нибудь пробовал это? Если да, можете ли вы поделиться некоторыми знаниями о том, как и его логика? Спасибо

Ответы [ 4 ]

10 голосов
/ 25 января 2010

Сборщик мусора в Java не является «потоком с низким приоритетом». Например, сборщик мусора часто использует несколько потоков параллельно. И, когда память заканчивается, сборщик мусора может выгрузить любой поток приложения.

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

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

Сборка мусора на Java тщательно настраивалась годами. Возможно, но маловероятно, что вы делаете что-то особенное, что имеет особые потребности в этой области.

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

  • Вы излишне создаете и отбрасываете много объектов.
  • У вас утечки памяти.
  • У вас проблемы с производительностью в приложении.
  • Вы ожидаете невозможных результатов.
2 голосов
/ 25 января 2010

Да, вы можете, но это требует от вас довольно сложной работы с JVM, поскольку вы не можете сделать это из работающей программы Java.Возможно, самый простой способ начать работу - использовать Jikes RVM в том виде, в каком он написан на Java (проект IBM стал открытым исходным кодом).

http://jikesrvm.org/

Получайте удовольствие, но ожидайте тяжелую битву:)

0 голосов
/ 25 января 2010

Полагаю, вам придется развернуть собственную JRE / JVM. В Java нет способа отключить сборку мусора по умолчанию.

Java 7 будет использовать совершенно новый GC, поэтому можно просто поменять их.

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