Как я могу видеть, какой сборщик "мусора" Java использует

Виртуальная машина Java поддерживает несколько стратегий сборки "мусора".

Эта статья объясняет их.

Теперь я задаюсь вопросом, который (автоматически выбранный) стратегия, которую мое приложение использует, там какой-либо путь, состоит в том, чтобы позволить JVM (версия 1.6) печать эта информация?

Править: JVM обнаруживает, если это находится в режиме сервера или клиенте. Таким образом, вопрос действительно состоит в том, как я могу видеть, который был обнаружен?

14
задан Thirler 23 March 2010 в 10:07
поделиться

3 ответа

http://java.sun.com/j2se/1.5.0/docs/guide/vm/gc-ergonomics.html , который применим для J2SE 6, также указывает, что по умолчанию используется параллельный сборщик.

Мы протестировали это один раз на JVM 1.5, установив только

-server -Xms3g -Xmx3g -XX:PermSize=128m -XX:LargePageSizeInBytes=4m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

, и результат показал

41359.597: [GC [PSYoungGen: 90499K->32K(377344K)] 268466K->181862K(2474496K), 0.0183138 secs]
41359.615: [Full GC [PSYoungGen: 32K->0K(377344K)] [PSOldGen: 181830K->129760K(2097152K)] 181862K->129760K(2474496K) [PSPermGen: 115335K->115335K(131072K)], 4.4590942 secs]

, где PS означает параллельную очистку

13
ответ дан 1 December 2019 в 06:18
поделиться

jmap -heap

Печатает сводку кучи. Распечатывается используемый алгоритм GC, конфигурация кучи и использование кучи с учетом поколения.

http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html

15
ответ дан 1 December 2019 в 06:18
поделиться

Как уже отметил Йоахим, статья, на которую вы ссылаетесь, описывает стратегии VM, предлагаемые Sun's VM. Сама спецификация VM не предписывает конкретных алгоритмов GC, и поэтому не имеет смысла иметь, например, перечисляемые значения для них в API.

Однако вы можете получить некоторую информацию из Management API:

List<GarbageCollectorMXBean> beans = 
    ManagementFactory.getGarbageCollectorMXBeans();

Перебирая эти бобы, вы можете получить имя GC (хотя только в виде строки) и имена пулов памяти, которыми управляют различные GC.

5
ответ дан 1 December 2019 в 06:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: