2015-07-17 2 views
7

Я работал над оптимизацией программы, в которой было много проблем с утечками памяти. Теперь утечки исчезли, но случайные прогоны основного GC все еще помещают хорошую вставку в PS старый ген. Я знаю, что я могу проверить базовую общую информацию о памяти через Runtime, но можно ли проверить использование в PS eden, PS survivor и PS old из программы?Можно ли использовать память кучи памяти пулом?

ответ

3

Это article может помочь вам

Вы можете написать собственный код для анализа модуля памяти & выхода будет в виде

collection time: 82037 
collection count: 116 
PS Survivor Space: init = 1703936(1664K) used = 65536(64K) committed = 32047104(31296K) max = 32047104(31296K) 
PS Eden Space: init = 10551296(10304K) used = 0(0K) committed = 69795840(68160K) max = 113049600(110400K) 
PS Old Gen: init = 27983872(27328K) used = 239432344(233820K) committed = 357957632(349568K) max = 357957632(349568K) 
Code Cache: init = 2555904(2496K) used = 19949568(19482K) committed = 20185088(19712K) max = 50331648(49152K) 
PS Perm Gen: init = 21757952(21248K) used = 148450536(144971K) committed = 155058176(151424K) max = 268435456(262144K) 

Хорошего read

0

jstat Tool - Инструмент мониторинга статистики виртуальной машины Java - это то, что используется для контроля использования JVM.

пожалуйста пройти через этот link:

+0

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

0

Вы можете использовать класс Runtime для получения сведений о куче памяти.

public class GetHeapMemory { 
    public static void main(String[] args) { 
     System.out.println(Runtime.getRuntime().freeMemory()); 
     System.out.println(Runtime.getRuntime().maxMemory()); 
     System.out.println(Runtime.getRuntime().totalMemory()); 
    } 
} 
Смежные вопросы