2010-09-03 2 views
6

Я вижу, что мое приложение выбрасывается из-за низкой памяти. В попытке отследить проблему я запустил приложение через инструмент Allocations. К сожалению, я не видел никаких проблем с использованием памяти, когда он был убит.Приложение iPad, отложенное в то время как Allocations Instrument не показывает необычного использования памяти

Во время выброса приложение воспроизводило видео и находилось около 45 секунд. Насколько я могу судить, не было никаких прикосновений или других событий.

Отчет аварии и выстрел из инструментов:

Incident Identifier: AF9F802D-F9B9-406D-951F-675AEE9ACCDF 
CrashReporter Key: 0563d9f62086be9f13ffd2d60b3b0bec7c5d677e 
OS Version:   iPhone OS 3.2.1 (7B405) 
Date:    2010-09-03 10:28:20 +0100 

Free pages:  693 
Wired pages:  22014 
Purgeable pages: 0 
Largest process: Wheel 

Processes 
     Name     UUID     Count resident pages 
      Wheel <7c2db04027d9b0c387b2389c64499ebe> 18864 (jettisoned) (active) 
     DTMobileIS <b34df288cd9a07a995933bbd6b66717a> 1697 
notification_pro <4c9a7ee0a5bbe160465991228f2d2f2e>  72 
notification_pro <4c9a7ee0a5bbe160465991228f2d2f2e>  72 
    syslog_relay <1c73f841b191556b6911bc6b4736b50f>  71 
      ptpd <e3f855cfd629600a4812e7e90c77667e>  253 
      lsd <eb108595d2a932a8d244d1ab7386cd0f>  162 
     notifyd <74e4a487a89c31f68917b22605baf6c6>  63 
     BTServer <21dd98c0ab29b910cd51cb703a9cb9b9>  213 
     CommCenter <e4b9cc04f083f22232c92ee1363fe669>  187 
    SpringBoard <745085d9a24a8529f0ceb6c33d766873> 4281 (active) 
     accessoryd <59ca0ba146c28bf5c8ab6e3d2e81bbad>  112 
     configd <36001fe17103f8af6d3b525cb23ac8a0>  356 
    fairplayd.K48 <2d997ffca1a568f9c5400ac32d8f0782>  81 
     locationd <60fd4d90fec18a76ffc0b8a45351fe54>  626 
    mDNSResponder <a6f01dd493e3d2bfe318f5d44f8508e2>  144 
    mediaserverd <2eda3ce5e1c8a1a4d7b8271cef1f2d12> 1624 
     lockdownd <378f09833cdc57b1b60e42d79c355938>  283 
MobileStorageMou <7f2cd9f90fab302a42a63460b1c4d775>  72 
     syslogd <6990426209e51a8ee13c91cd1a050a2e>  69 
     launchd <880e75c2db9c0f670516c58935e89b58>  88 

**End** 

Instruments

Есть ли что-нибудь еще я могу сделать, чтобы проследить причину отстрелить? Кто-нибудь знает, что означает число постоянных страниц Count в отчете о сбое?

EDIT

Есть ли способ получить количество страниц резидентов как прогонов приложения?

+0

Вставьте полный отчет о сбое, а не снимок экрана. – kennytm

+0

Вы получаете сообщение с низкой памятью до того, как ваше приложение выбрасывается? Если да, то чем вы занимаетесь? –

+0

Я добавил отчет о сбое. – Codebeef

ответ

6

ОК, причина, по которой я видела, как мое приложение отключилось, и не видя каких-либо странных действий при утечке или распределении, было потому, что я (непреднамеренно) кэшировал несколько больших изображений, из-за которых мое приложение запускало использование памяти.

Корень проблемы состоял из нескольких вызовов [UIImage imageNamed:], которые кэшировали данные изображения. Переключение вызовов с этого метода на метод, который не кэширует, разрешает проблему.

Если вы хотите получить более подробную информацию, я разместил a short post here.

+1

Вы, похоже, изменили ссылку на http://codebeef.com/articles/be-careful-with-uiimage-imagenamed.html – Gomfucius