​​При написании кода на страшных и несовременных...

Телеграм авг. 27, 2020

​​При написании кода на страшных и несовременных языках С/С++ есть понятное правило: память занял - попользовал - уберись за собой, освободи её.

Из-за ошибки программиста может возникнуть проблема: где-то забытая очистка памяти приводит к тому, что программа выдает все больше оперативной памяти, после чего начинает "есть" файл подкачки, а потом "умирает" или вообще вызывает перезагрузку машины, на которой она установлена.

В большинстве молодых языках программирования есть "сборщик мусора" - функционал, который убирается за программистом. В разных языках у сборщиков свои особенности, но в целом принцип работы один: ищется и чистится занятая память, информация в которой больше не нужна для работы программы.

Казалось бы, все сделано за нас, и нужно просто сосредоточиться на бизнес задаче, но не все так просто. Незнание особенностей работы сборщика может привести к печальным последствиям - "невозможной" утечке памяти, проявляющейся редко, и что характерно под рабочими нагрузками, нанося ущерб бизнесу.

При обучении программированию в рядовых ВУЗах, принципам работы сборщиков мусора внимания не уделяется: упомянули на лекции и пошли дальше.

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

Теги