2009-01-06 15 views
6

Uygulamamı geliştirirken, uygulama kilitlenmelerinin çoğunun zayıf bellek yönetiminden kaynaklandığını fark ettim. I NSLog doğru sayar muhafaza baskı ya da günlük anlamaiPhone Uygulamamı test ederken bellek yönetimini izlemenin en iyi yolu nedir?

(@ "sayısı muhafaza şöyledir:% d" [myInstance retainCount]); Daha iyi, daha az manuel yöntem

Ama yok? Nesnelerinizin ve örneklerin görsel bir temsili olabilir mi?

cevap verdi. Şerefe, Adam & Jason. :-)

cevap

6

Kaçaklar kullanın ve XCode yoluyla Tahsis araçları Nesne.

Run > Start with Performance Tool > ... 
2

Adam önerdiği gibi, Aletler bu tür şeyler için çok kullanışlı bir araçtır. Kullanımı oldukça kolaydır, ancak ilk başta biraz bunaltıcı olabilir. Başladığınızda Instruments User Guide'u kullanmanızı öneririz. Takip etmek oldukça kolay ve bir süredir Enstrümanlar kullanana kadar yardımcı oluyor. Bununla birlikte, kılavuzu okumadan bile, Cihazlar, NSLog() çağrıları ile kodunuzu çöpe atmaktan ve çıktıyı kendiniz ayrıştırmaya çalışmaktan çok daha kolay ve daha sezgiseldir;)

3

Diğer cevaplara ek olarak, çok kullanmanızı tavsiye ederim kodunuzun statik bir hafıza analizi yapmak için clang. Her bellek yönetimi hatasını yakalamaz, ancak oldukça fazla yakalar. Eğer baş sorununun bellek yönetimi hatalarından kaynaklanmış gibi görünüyorsa, clang bu hataları bulmak için çok yol alacak. Clang, http://clang.llvm.org/

0

adresinde ücretsizdir. Ayrıca, aşırı yayın yapan nesnelerin durumlarını izlemek için NSZombie numarasını da bulabilirim.

Temelde bağlantı 'hile' açıklar böylece release'd nesneler istisnalar atmak yeniden yayımlanan olsun eğer NSZombie nesneler ile yer değiştirirler söyledi.

Ardından nesne tahsis edildi yere geri izlemek için Instruments kullanabilirsiniz.

İlgili konular