2010-10-25 34 views
6

Uygulamanın tüm ömrü boyunca bellekte kalan, ana denetleyicide çok sayıda görüntü gösteren xml ayrıştırıcı, uiwebview, navigationcontroller ile bir uygulama üzerinde çalışıyorum. Verilerimi çekirdek verileri kullanarak saklıyorum.
Aşağıdaki uyarıları aldığımdan, uygulamanın bellek ayak izini anlamaya çalıştım:Alınan bellek uyarısı

Alınan bellek uyarısı. Seviye = 1
uygulama temsilci

Alınan bellek uyarı uyarı
RSSItem alınan bellek uyarı
ana kontrolör alınan bellek uyarı
ana kontrolör alınan bellek uyarı bellek aldı. Seviye = 2
uygulama temsilci
RSSItem ayak izi 4MB etrafında

uyarı bellek alınan uyarı
ana kontrolör alınan bellek uyarısı
ana kontrolör alınan bellek uyarı hafızayı aldı ve belki 10 civarında kadar atlar zaman UIWebViews'ı önemli sayıda görüntüyle aşağı doğru inceltin ve görüntüleyin. Bu ayak izi çok mu büyük? Oldukça karmaşık bir uygulama olduğunu düşünüyorum. Anladığım kadarıyla, uygulamaların 40-70MB'ı var, ver veya al, ama kesinlikle 10MB'lık bir sınırı yok. Herhangi biri, sorunu çözmek veya çözmek için ne yapabilirim? Kaçaklarım yok. Asıl sorunun ayak izi değil, farkında olmadığım başka bir şeyden korkarım. Yardımlarınız için teşekkürler.

cevap

5

Instruments.app'de bellek analiz araçlarına sahipsiniz - bu, uygulamanızda yer alan paylaşımlarla ilgili çok fazla veri gösterecektir. Tahmin etmem gerekirse: görünür olmayan görüntüleri yok edin.

+1

Teşekkürler Justin. Mümkünse bellek kullanımını en aza indirmek için kesinlikle iyi bir fikir ve bunun üzerinde çalışıyorum. Ama yine de, 3-10MB o kadar değil. Bu arada, didReceiveMemoryWarning'de [super didReceiveMemoryWarning] 'i henüz çözemedim. Bu, sorunun düzeltilmesi için doğru yol olmadığından emin olmakla birlikte, işe yarıyor gibi görünüyor. – Zsolt

+0

yw. Ayrıca, geçersiz kılmada "süper" ile * aramanız gerekir. Spesifik davranışlara ihtiyaç duymazsanız, önce "süper" yi arayın. – justin

İlgili konular