Pull to refresh
4
20

User

Send message

А Вы не замеряли, есть ли заметные накладные расходы по производительности при использовании этого подхода?

Какие-то расходы есть, конечно, но они не сравнимы с последствиями утечки

Насколько часто Вы пользуетесь этими аннотациями? Только для ViewModel или для каких-то более мелких объектов тоже?

В основном – для моделей. Обычно, если "утекает" что-то мелкое внутри модели – сама модель тоже не освобождается. Однако, ограничений нет.

Вы оставляете эти проверки в release-версии?

Нет, в реальном коде проверки закрыты аннотациями #if DEBUG || ADHOC

Но ведь не совсем? Instruments позволяет именно обнаружить утечки, они "подсвечиваются" по ходу работы приложения. Или применительно к SwiftUI этот инструмент работает не очень хорошо? Я в SwiftUI пока не пробовал им пользоваться.

В самом Xcode примерно также, только нужно останавливать выполнение. Однако, не это главное. В описанном варианте утечку может обнаружить QA-инженер, тестирующий на реальном устройстве, а не только разработчик в Xcode/Instruments, когда специально этим озаботится. Разработчик может спокойно писать код, зная, что утечки будут найдены в процессе тестирования.

Если объект LeakingViewModel "утечёт" – его deinit не будет вызван, соответственно, проверка не состоится.

Information

Rating
348-th
Works in
Registered
Activity