2010-05-29 22 views
8

HTML'li bir UIWebKit'im var, bu HTML'de birkaç görüntü ve metin var, ancak sadece görüntülendiğinde bana bellek uyarısı veriyor. Bu yüzden bazı testler yaptım: Aynı görüntülerdeki HTML, tam boyutlu ve aynı resimlerden sonra ancak% 50 azaltılmış görüntüler için% 50 azaltılmış,% 50 azaltılmış görüntüler için% 50Düşük bellek kullanımıyla bellek uyarısı alan iPad

Şaşırtıcı kısım% 50 testtir, 16 görüntüde bile bellek tepe noktasının 4.90MB olduğunu görebilirsiniz. Bu gerçekten şaşırtıcı. Bu değerlerin her zaman aynı olmadığına, değiştiğine dikkat edin, ancak testler arasında büyük bir fark yoktur. 8 ve 16 resim içinde% 50 sayısında

, bellek, düşük bazen bir bellek uyarı görünür, ancak performans geliştirmek = Bellek sonra

ayakta hala tam boy görüntülere göre fark edilir, ancak tüm yazı kaydırma

1 Resim = [ayakta hala 5 MB] [döner 5,6MB]

2 Görüntüler = [hareketsiz durma 6.99MB] [döner 7,7MB]

3 Görüntüler = [hareketsiz durma 9.04MB ] [dönen 10.9MB]

4 Görüntüler = [hala 10.89MB ayakta] [döner 13.20MB]

8 Görüntüler = [ayakta hala 23.14MB] (bazen çöker)

16 Görüntüler = [hareketsiz durma [25.20MB döner] 27.14MB ve uygulama çöker]

50%

1 Resim = [hareketsiz durma 3.2MB] [döner 3.67MB]

2 Resim = [hareketsiz durma 3.2MB] [ Döner 3.70MB]

3 Resim = [hareketsiz durma 3.3MB] [döner 3.79MB]

4 Resim = [hareketsiz durma 3.3MB] [döner 3.80MB]

8 Görüntüler = [olarak hareketsiz 4.29MB] [döner 4,63MB]

16 Resim = [hareketsiz durma 4.79MB] [döner 4,90MB] (bazen çöker) (bazen çöker)

olan sorum: Uygulama bazen 16 ile çöktü küçük görüntüler. Niye ya? Bellek çok daha düşüktü.

Bellek kullanım sınırı nedir? Maksimum,% 50 boyutundaki resimlerle farklı görünüyordu. 13.2MB büyük görüntüler ve küçük görüntüler için 3.8 çalışır. Daha yüksek bir şey bazen çöküyor. Bu hiç mantıklı değil.

Teşekkür

cevap

2
sen neler bir kilitlenme günlük yayınlanan eğer çok büyük olasılıkla kazasında hafıza tüketimine kadar ilgili değildir çünkü nasıl o bellek işleme konum için olduğu gibi, yardımcı olacağını

.

w * h * 4 

tabii varsayarak görüntü 32 bit renkli görüntü, w olduğunu, Evet resim boyutu Resim başına kullanılan gerçek bellek miktarı bu formüle göre boyutlandırılmış olduğundan, sorunu exaccerbating olabilir görüntünün piksel cinsinden genişliği ve h, piksel cinsinden görüntünün yüksekliğidir. Sonuç olarak, 1024x1024 32 bit renkli bir resim yaklaşık 4.2 MB bellek kullanır, 512x512 32 bit renkli bir resim ise 1 megapiksel kullanır.

Kilitlenme raporunuz anlatılacak. Ayrıca, Nesne atamalarında ve sızıntı araçlarının altında çalışan araçlar da muazzam bir kavrayışa sahip olabilir (yan panelde görünür şekilde görünür, bulduğunuz herhangi bir sızıntı için çağrı yığınını gösterir). Ayrıca, CIOImage ya da benzeri gibi şeylere işaret eden sızıntıları da fark ederseniz, sızıntının nihayetinde meydana geldiği yer olabilir, ancak sızıntının meydana geldiği yerler kodunuzda neredeyse olumlu yönde olacaktır. Ayrıca, Cihazları çalıştırırken, cihazınızda çalışan uygulamaya bağlı olarak çalıştırmayı da unutmayın; Bu gibi durumlarda sim yüzündeki değeri söyleyen hiçbir şeyi alma.

+0

Görüntünün sıkıştırılmamış boyutunu hesaplamakta haklısınız (formül (w * h) B'yi kullanıyorum; burada "B", piksel başına bayttır (bit değil). Bu onun sorunu olabilir. – Mikaveli

+0

Bayt olmayan bitleri hesaplıyordum. 32 bitlik 4 bayt. – jer

+0

Üzgünüz, bayt kullandığınızı anlıyorum. Sadece OP için daha net hale getirmek istedim, çünkü çoğu kişi görüntülerden bahsettiklerinde 'piksel başına bit' olarak ifade ettiler. – Mikaveli