Пояснительная бригада: сборщики мусора

Пояснительная бригада: сборщики мусора

Поясняет редакция «Кода»:

Мем обыгрывает эволюцию мозга и мышления и подход к проблеме переполнения памяти во время исполнения кода. Эта проблема состоит в том, что, объявляя новую переменную в коде, мы занимаем место в памяти, где переменная хранится, даже если она не используется. Когда таких переменных много, программа требует много памяти, память забивается, а компьютер начинает тормозить.

Для решения этой проблемы мусор в виде неиспользуемых переменных удаляют. Это можно делать вручную, а можно автоматически — при помощи сборщиков мусора. Это небольшие подпрограммы внутри основной, которые постоянно просматривают код и проверяют, используются ли указанные переменные и объекты. И если какие-то больше не используются, сборщик удаляет их и освобождает занятую ими память. Теперь вернёмся к мему.

На первом уровне эволюции автоматический сборщик не используется вообще. Памяти может расходоваться много. Это как если бы люди перестали перерабатывать мусор и свалки постепенно заняли бы всю планету.

На втором уровне мышление эволюционирует до того, чтобы мусором занимался автоматический сборщик, встроенный в язык программирования или компилятор кода. Это как если бы люди автоматизировали сортировку мусора так, чтобы всё правильно утилизировалось.

На третьем уровне эволюция мышления приходит к тому, что сами программисты следят за кодом и тем, чтобы чистить мусор и память, чтобы она не переполнялась. Это требует высокой квалификации и иногда больших трудозатрат программиста. Аналогия с обычной жизнью: у нас есть специальные компании, которые перерабатывают мусор, но им непросто работать из-за того, что мусор очень разный и его много, а самих таких компаний — мало.

Наконец, на четвёртом уровне мышление приходит к тому, чтобы сделать ответственными за сбор мусора самих пользователей программ — в конце концов, это у них там что-то тормозит из-за переполнения памяти, вот пусть и решают свои проблемы (а на нашем компьютере всё работает). Это как если бы все абсолютно люди стали обязаны заниматься сортировкой мусора дома, а затем сдавать его в определённые пункты сбора, где занимаются конкретными сортами, кхм, мусора. Вот тогда бы зажили!

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме