Apple запретила разработчикам использовать Garbage Collection

Наталия Чеснова avatar | 15
FavoriteLoading В закладки
Apple запретила разработчикам использовать Garbage Collection
mac_app_store

В пятницу Apple разослала уведомление разработчикам о том, что до 1 мая они должны перевести всё своё программное обеспечение на Automatic Reference Counting. Использовать технологию Garbage Collection больше нельзя.

Начиная с 1 мая 2015 года новые приложения и обновления для компьютеров Mac, размещённые в Mac App Store, не могут пользоваться технологией Garbage Collection. От неё начали отказываться ещё со времён запуска OS X Mountain Lion. Всё программное обеспечение следует перевести на Automatic Reference Counting (ARC) при помощи ассистента миграции в Xcode. В приложениях может использоваться retain/release в ручном режиме

Garbage Collection – это устаревшая технология управления памятью. Она предусматривала периодическое удаление и очистку памяти компьютера от объектов, которые уже не нужны для работы с ПО. Automatic Reference Counting, пришедший ему на смену, не запускает никаких фоновых процессов и не освобождает память – он компилирует код за программиста, расставляя retain/release.

Напомним, что ARC для языка Objective-C был представлен Apple ещё в 2011 году для iOS 4.0 и Mac OS X 10.6 с выходом xCode 4.2.

Новые условия вступают в силу 1 мая. То ПО, которое не будет переведено на ARC до этого времени, будет удалено из Mac App Store. [apple]

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, общий рейтинг: 5.00 из 5)
undefined
iPhones.ru
В пятницу Apple разослала уведомление разработчикам о том, что до 1 мая они должны перевести всё своё программное обеспечение на Automatic Reference Counting. Использовать технологию Garbage Collection больше нельзя. Начиная с 1 мая 2015 года новые приложения и обновления для компьютеров Mac, размещённые в Mac App Store, не могут пользоваться технологией Garbage Collection. От неё...
Прокомментировать

🙈 Комментарии 15

  1. MrHubris avatar
    MrHubris21 февраля 2015
    0

    Collector, а не collection

    ironDrew avatar
    ironDrew21 февраля 2015
    0

    @MrHubris, в статье все верно, если вы только не знаете технологии apple лучше самой apple)

    Entze avatar
    Entze21 февраля 2015
    0

    @ironDrew, нет, он просто так спешил набросить на Наталью.

    AlexMacreall avatar
    AlexMacreall21 февраля 2015
    0

    @MrHubris,
    Garbage Collector – сборщик мусора
    Garbage Collection – сбор мусора

    Никакой принципиальной разницы

  2. fedorez avatar
    fedorez21 февраля 2015
    0

    И чем им сборка мусора помешала, непонятно.

    arabesc avatar
    arabesc21 февраля 2015
    0

    @fedorez, своими непредсказуемыми тормозами, которые могут выражаться, например, во фризах анимации пользовательского интерфейса.

  3. Lord Wind avatar
    Lord Wind21 февраля 2015
    0

    > Garbage Collection – это устаревшая технология управления памятью

    чуть пломбы не вылетели от смеха

    Rezon avatar
    Rezon22 февраля 2015
    0

    @Lord Wind, В мире OS X – устаревшая (deprecated). Мы же не о Java/.NET/чём-нибудь ещё говорим?

  4. mipxtx avatar
    mipxtx21 февраля 2015
    0

    в оригинале написано
    > new Mac apps and app updates submitted to the Mac App Store may no longer use garbage collection, which was deprecated in OS X Mountain Lion. Instead, migrate your apps to Automatic Reference Counting

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

    arabesc avatar
    arabesc21 февраля 2015
    0

    @mipxtx, “Потому что сборщик мусора как раз и занимается подсчетом ссылок и удалением объектов, на которорые больше ничкто не ссылается.”
    Разные есть подходы. Например, классический подсчет ссылок, будь он ручной или автоматический, не справится с ситуацией, когда объект A ссылается на B, а B, в свою очередь, на A. Получается закольцованная связь, оба объекта держат друг друга и никогда не освободят память. GC такую ситуацию разрулить может, но для этого ему, обычно, требуется больше ресурсов.

    heximal avatar
    heximal23 февраля 2015
    0

    @arabesc, это называется retain cycle – очень опасная вещь

    Rezon avatar
    Rezon22 февраля 2015
    0

    @mipxtx, Нет, это не смена “библиотек для сборки мусора”. ARC – это принципиально иной подход. Это, своего рода, автоматизация ручного подсчёта ссылок, где на этапе компиляции (в отличие от GC) автоматически вставляются команды на освобождение памяти (то, что раньше приходилось делать вручную). Т.е. во время выполнения никакого специального механизма, следящего за освобождением памяти, нет. GC же – это, по сути, отдельная программа, которая анализирует объектный граф (как правило) и удаляет объекты, которые больше не используются.

  5. hairpet avatar
    hairpet22 февраля 2015
    0

    Интересно, будет ли что то с проектами без Garbage Collection и без ARC ?

    Rezon avatar
    Rezon22 февраля 2015
    0

    @hairpet, Думаю, ничего. Apple, скорее всего, просто не хочет поддерживать GC в новых версиях ОС. Отсюда и запрет. А программам на MRC никакая спец. поддержка не нужна. Они, по сути, не отличаются от программ на ARC, просто retain/release/autorelease расставляет не программист, а компилятор.

  6. mibori avatar
    mibori22 февраля 2015
    0

    Можно запилить свой коллектор, если очень надо.

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь