Тут персонаж один пристал, говорит, что у него в Java есть какой-то «мусожор», а вот в Bash такого нет и поэтому от наших скриптов одни проблемы.
Термин «мусожор», видимо, профессиональный и является пресловутым Garbage Collector.
К Java я отношусь ровно: оно меня не трогает, и я его тоже.
Как говорится, одно говно другому не равно. Поэтому хуесосить не буду.
Давай проведём эксперимент:
ps -o rss -p $$
var=$(printf "%s\n" {1..100000})
ps -o rss -p $$
var="bashdays"
ps -o rss -p $$
В первой строчке выводится количество физической памяти в килобайтах, используемой текущим процессом оболочки. У меня выдало 4348.
Во второй строчке записываем в переменную var содержимое от 1 до 100000 с переносом на новую строку.
В третьей строчке снова выводим количество физической памяти. У меня 5276.
В четвёртой строчке перезаписываем var на строку «bashdays» и снова проверяем память.
На этот раз пятая строчка вновь показывает: 4348.
Что и требовалось доказать. Использование памяти увеличивается, а затем снова уменьшается.
Bash не работает с памятью и объектами так же, как обычные языки программирования.








Комментарии