почему launchd убивает мое приложение, которое использует только 2 МБ в оперативной памяти? - PullRequest
0 голосов
/ 16 августа 2011

Я разрабатываю приложение для iPod touch, которое использует камеру, отображает предварительный просмотр и делает снимки (все это через AVCaptureSession). Чего я не понимаю, так это того, что мое приложение иногда убивается при запуске из-за предупреждения памяти ... хотя оно использует не более 2 МБ в ОЗУ (см. Прикрепленный скриншот). Консоль говорит мне

Aug 16 15:16:35 Wiggler[109] <Warning>: Received memory warning. Level=1
...
Aug 16 15:16:58 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.tMyCompany.Wiggler[0xd83d]) Exited: Killed: 9

С другой стороны, я могу успешно запускать другие приложения, которые используют тонны оперативной памяти (более 100 МБ) без каких-либо сбоев или предупреждений о памяти.

Что не так с моим приложением? Что мне не хватает? Это ошибка или утечка памяти внутри AVFoundation (фреймворк, обеспечивающий AVCaptureSessions)? Я не понимаю, почему мое приложение убивают, когда оно использует так мало памяти ...

Спасибо за вашу помощь.

instruments screenshot

Ответы [ 2 ]

4 голосов
/ 16 августа 2011

Вы почти наверняка используете больше памяти, чем показывает то, что показывает Allocations.

Из вашего снимка мне кажется, что вы не используете инструмент VM Tracker. Выберите опцию «снимок автоматически» в VM Tracker, а затем проверьте размер «грязного» и «резидентного» размера.

Это даст вам более «глобальное» представление об использовании памяти вашего приложения. В любом случае, это не поможет вам исправить ваши проблемы с выделением ресурсов, но, по крайней мере, это может объяснить причину появления предупреждений о памяти.

Для превосходного объяснения того, что такое «грязная» и «резидентная» память, посмотрите на это из S.O.

0 голосов
/ 16 августа 2011

Попробуйте настроить AVCaptureSession для меньших снимков и посмотрите, как это влияет на использование грязной памяти.GC не может собирать используемую память (как часть захвата или предварительного просмотра и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...