2012-01-13 21 views
7

Bir Apple iPad'de çalışan ve zaman zaman performansında ani bir düşüş yaşayan bir AIR uygulamasına sahibiz. Kare hızı 60 fps'den 2 fps'ye düşer ve bundan asla kurtarmaz.Bir iPad AIR uygulamasında Performansta Aniden Düşme renderMode = GPU

  • bu iOS 4 sadece tekrarlanabilir, ancak hiçbir zaman iOS 5 üzerinde - biz iki özdeş iPad'ler (kuşak 1)
  • performans damla üzerinde bunu kontrol ettik:

    eden gözlemlerin bazıları

    vardır başka bizim uygulamasından geri
  • çok nadiren, performans düşüşü de app
  • bu başına ilk başlangıcı olur - biz uygulamalar arasında geçiş yaptığınızda bazen, ama her zaman olmuyor formance sorunu renderMode=CPU olmaz, ancak render çirkin olduğu için bu modu döndürülmüş bitmaplerin

Has başkasının deneyimli benzer sorunlar üzerinde, bizim için özellikle çalışmıyor? Herhangi bir fikir, nasıl çözülür?

+0

Hiç "cacheAsBitmap" ile oynadın mı? Ayrıca, IOS üzerinde döndürülen ve/veya ölçeklenmiş görüntüler için 'cacheAsBitmapMatrix' kullanmak isteyeceksiniz. Bu ikisi hakkında çevrimiçi bilgi bol var, bu yüzden size izin vereceğim ve Google sıralayacağım. – Jacksonkr

+1

Evet, bunların ikisini de kullanıyoruz. RenderMode = GPU' kullanmanın bir nedeni de tam olarak "cacheAsBitmapMatrix" desteğidir. Bununla birlikte, 'cacheAsBitmapMatrix' işleminin yalnızca CPU değil GPU modu ile çalıştığını unutmayın. –

+0

ilginç bir soru ... – npocmaka

cevap

1

Bu, yalnızca iOS 4'te değil iOS 4'te gerçekleştiğinden GPU oluşturma özelliğine sahip bir AIR çalışma zamanı hatası gibi geliyor. Ancak, iOS 4 cihazınızın tüm önbelleğe alınacak şekilde çok az yerleşik GPU belleği olması olasıdır dönüşümler. Önbelleğiniz dolduğunda, büyük bir performans düşüşü (belki de gördüğünüzle aynı düşüş) görünecektir. Önbelleğe alınmış dönüşümleri en az düzeyde tutmak için mümkün olduğunca nesne havuzu kullanmalısınız.

+1

Cevabınız için teşekkürler! Temel olarak, aynı sonuçlara vardık. Şu an yaptığımız şey, kare hızını izlemek ve bir performans problemi saptadığımızda, "cacheAsBitmap" öğesini "false" olarak değiştirmeye başlıyoruz. Ayrıca, dönüşüm matrislerinin önbelleğe alınmasını kaldırır ve önbelleğe alınmış nesneleri minimumda tutmaya çalışırız - yalnızca UI için gerekli olan hareketli/hareketli nesneler önbelleğe alınır. Yine de, bunun bir AIR hatası gibi göründüğüne katılıyorum. –

İlgili konular