Шаблоны утечек
В следующих разделах мы обсудим общие шаблоны утечек памяти и приведем несколько примеров для каждого. Замечательным примером утечек будет случай замыкания в JScript, в качестве другого можно привести использование замыкания для обработки событий. При знакомстве с обработчиками событий можно будет легко найти и устранить многиe утечки памяти, однако другие случаи, связанные с замыканиями, могут остаться незамеченными.
Основные виды утечек можно разбить на следующие 4 типа.
Циклические ссылки , когда существует взаимная ссылка между DOM‑объектом в браузере и скриптовым движком. Такие объекты могут приводить к утечкам памяти. Это самый распространенный шаблон.
Замыкания являются самым значимым шаблоном для существующих архитектур веб‑приложений. Замыкания довольно легко зафиксировать, потому что они зависят от ключевого слова, относящегося к используемому скриптовому языку, и могут быть по нему в общем случае обнаружены.
Постраничные утечки зачастую представляют собой очень маленькие утечки, которые возникают из‑за учета объектов при перемещении от элемента к элементу. Ниже будет рассмотрен порядок добавления DOM‑объектов, а заодно и характерные примеры, которые демонстрируют, как небольшое изменение вашего кода может предотвратить создание таких учитываемых объектов.
Псевдо‑утечки , по существу, не являются утечками, но могут вызывать некоторое беспокойство, если не понимать, куда расходуется память. Будет рассмотрена перезапись объекта скрипта и как она проявляется в расходовании очень малого количества памяти, если работает так, как требуется.
Дата добавления: 2015-05-19; просмотров: 651;