Я изучаю использование памяти в Java, чтобы понять, почему у моей программы происходит утечка памяти. После удаления кода из основного цикла while у меня все еще увеличивается использование памяти с течением времени. Размышляя об использовании памяти пустой программой:
class Nothing
{ public static void main(String[] args)
{ while(true); }
}
Я все еще видел увеличение памяти:
Итак, мой вопрос: почему до сих пор существует рисунок зубьев пилы? Почему при запуске GC он не сохраняет всю память (при каждом запуске GC (в долинах) используемая память увеличивается на 10-20 КБ (по сравнению с предыдущей долиной))?
EDIT:
Java-версия "1.6.0_29"
Java (TM) SE Runtime Environment (сборка 1.6.0_29-b11)
Java HotSpot (TM) Клиентская виртуальная машина (сборка 20.4-b02, смешанный режим, совместное использование)
ОС: Windows 7 Enterprise-32 bit