Обновить
1
0
Denis Kiselev@deksden

enterpreneur

Отправить сообщение
Неочевидные случаи — думаю, их хватает. Я ж не разработчик CLANG/LLVM — потому и призываю перенять их опыт.

С ходу сам могу придумать про банальные циклические ссылки: в objC с ними борются через фичу «слабые и сильные ссылки». «Автоматическое обнуление» (не самом деле — проверка жив ли объект по слабой ссылке) слабых ссылок и возможность вызова селектора над нулевым объектом — приятная особенность ObjC.
Думаю, для реальной жизни нужна всякая оптимизация — например, путем размещения некоторых объектов на стэке / регистрах, не трогая кучу. Без компилятора это сложно сделать.

Еще вспомнил — в ObjC есть тонкости в использовании ссылок на блок из самого блока — нельзя забывать помечать такую ссылку слабой.

В общем, думаю у сообщества ObjC / LLVM накоплен значительный опыт в работе с подсчетом ссылок. Чего бы его не воспринять.

Принцип тот же, безусловно — подсчет ссылок. Суть в первой букве A: автоматическое. Используются возможности LLVM / CLANG для анализа возможных «трудных» и неочевидных случаев для «убийства» объектов — почти уверен, что таких накоплено довольно много. Зачем же изобретать велосипед, когда ARC используется в продакшене и много неочевидных штук уже «вычищено»?
Неужели так сложно прикрутить аналог ARC из objective-c от Apple? Имхо, единственная из известных мне реально работающих и удобных альтернатив GC. Оверхед добавляется, но он предсказуем — это чистка ссылок по выходу из scope, занимает всегда определенное время, без неожиданных «лагов» в стиле GC.
Для общего развития немного почитать будет полезно.

Впрочем, у Гугла каждый год тренды меняются — позавчера — Responsive Mobile-friendly sites, вчера это были AMP, сегодня — Progressive Web Apps.

Отделяя моду и баззвордовость отдельных статей, пару практически полезных приемов всегда можно воспринять.
Лицензия указана как BSD

Информация

В рейтинге
5 182-й
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность