Я пытаюсь посмотреть на управление памятью в Java. У меня есть программа, которая создает большую коллекцию (~ 500 МБ). Я запускаю java
без особых аргументов. Как только эта коллекция выйдет из области видимости, я вызываю сборщик мусора, используя System.gc()
. Из jconsole я вижу, что используемая куча памяти значительно сокращается. То же самое нельзя сказать о выводе RES команды top
linux.
Моя единственная интерпретация заключается в том, что, как только JVM овладевает памятью, она не высвобождает ее в систему, пока она работает. Это правильно?