Как Swift работает с памятью: подробный гайд для разработчиков. Часть первая
Считается, что работа с памятью в Swift сводится к простому правилу: структуры — в стек, классы — в кучу. На практике всё сложнее.
Value-типы легко улетают в heap, если их размер превышает три машинных слова внутри экзистенциального контейнера. При этом хвалёный Copy-on-Write в таких условиях приводит к жёсткому дублированию данных при мутации, а наличие unowned-ссылки способно заморозить deinited-инстанс, превратив его в «зомби» даже при активной side table.
Заглянем под капот механизмам аллокации и жизненному циклу объектов.
Обсуждение 2
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram