Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - Затишна Галера
Added 06 Jan 2025

Затишна Галера

@Zatishna_Galera
Number of subscribers: 2 709
Photos: 1,350
Videos: 431
Links: 1,830
Description:
Голова Одеського центру розробки DataArt та Delivery Director, капітан Затишної Галери, ділитимуся: завданнями із співбесід (QA/Delivery/Management), статтями, вакансіями, новинами зі світу IT. Контакт: [email protected] ; Patreon: patreon.com/CozyGalley
Source

Затишна Галера | iOSКомпас 🧭1️⃣4️⃣6️⃣ Завдання 146Чим відрізняється garbage collector і...

Telegram community logo - Затишна Галера Затишна Галера @Zatishna_Galera
620 Views/Reach 2026-03-18 08:03 Message №2500
#iOSКомпас 🧭1️⃣4️⃣6️⃣ Завдання 146Чим відрізняється garbage collector і підрахунок посилань?Доброго здровля мої любі друзі. З вами ваш незмінний ios розробник Сергій з @badlinkschannel.🤔 Garbage Collector (GC) і Automatic Reference Counting (ARC) - це два різних підходи до управління пам’яттю в програмуванні. Вони вирішують одну задачу: автоматичне звільнення невикористовуваної пам’яті, але роблять це по-різному.🔣 Garbage Collector (GC)Java, Kotlin, C#, Python, JavaScript GC використовує алгоритми трасування (наприклад mark-and-sweep) і визначає, які об’єкти доступні з кореневих посилань, а які вже недосяжні. Об’єкти, до яких немає досяжних посилань, вважаються «сміттям» і видаляються, а пам’ять звільняється. Це автоматичний процес, який запускається рантаймом за потреби.🔣 Підрахунок посилань (ARC - Automatic Reference Counting)Де використовується: Swift, Objective-C Кожен об’єкт має лічильник strong посилань (reference count). Коли змінна створює strong посилання на об’єкт, лічильник збільшується. Коли посилання зникає, лічильник зменшується. Коли лічильник досягає нуля, об’єкт деініціалізується і пам’ять звільняється.class Person {var pet: Pet?}class Pet {var owner: Person?}let person = Person()let pet = Pet()person.pet = petpet.owner = person // Тепер обидва об’єкти тримають один одного, і ARC їх не видалить 🔣 Рішення - використовувати weak або unowned:class Pet { weak var owner: Person? // Тепер витоку пам’яті не буде} @Zatishna_Galera