Мне нужно выяснить, сколько памяти было сохранено с использованием потоковой обработки или обычного чтения всего файла в памяти
Я пробовал 2 теста. Случай 1. Часть закомментированного потока.
Случай 2: закомментированная нормальная часть обработки
//Normal process
List<String> lines1 =Files.readAllLines(wiki_path);
for (String string : lines1) {
System.out.println(string);
}
//
/* Stream process
Stream<String> lines = Files.lines(wiki_path);
System.out.println("<!-----Read all lines as a Stream-----!>"); //Stream processing
lines.forEach(System.out :: println);
lines.close();
*/
Объем используемой памяти составляет 36 МБ как для обычной, так и для потоковой обработки. Почему нет разницы в потреблении памяти между обоими подходами Размер файла составляет 8,5 МБ
Память рассчитывается с использованием runtime.totalMemory () - runtime.freeMemory ()
Примечание: если я комментирую циклы для обоих тестовых случаев, результат показывает разницу примерно в 25 мегабайт, т.е. поток обрабатывает только 4 мегабайта, тогда как обычный - 29 мб.
Почему после добавления циклов в обоих тестовых примерах это не одно и то же?