public class Solution {
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
System.out.println("total memory before "+runtime.totalMemory());
System.out.println("free memory before "+runtime.freeMemory());
for (int i=0;i < 1_000_000_00;i++){
Date date = new Date();
date=null;
}
System.out.println("total memory after "+runtime.totalMemory());
System.out.println("free memory after "+runtime.freeMemory());
System.gc();
System.out.println("total memory after gc "+runtime.totalMemory());
System.out.println("free memory after gc "+runtime.freeMemory());
}
}
Я написал этот тест на основе обучающего видео. Результат вывода следующий. (черная картинка - мой компьютер, белая - скрин из обучающего видео)
1)Почему на моем компьютере после использования gc() значительно уменьшилась общая и свободная память?
2)Почему этого не произошло в обучающем видео?
Alexander Gromov
19 уровень
- Дюк, вынеси мусор! — Часть 1
- Дюк, вынеси мусор! — Часть 2
- Дюк, вынеси мусор! — Часть 3
Если, после прочтения этих статей, Вам захочется больше подробностей, посмотрите на Ютубчике доклады Алексея Шипилёва о Shenаndoah GC.