Filtreleri ve dinamik bitmap'i kaldırma

Pixel Bender üzerinden işlenen filtreler dahil olmak üzere filtre kullanımından kaçının.

Piksel Bükme ile mobil aygıtlarda işlenen filtreler de dahil olmak üzere, filtreler gibi etkilerin kullanımını en aza indirmeye çalışın. Bir görüntüleme nesnesine bir filtre uygulandığında, çalışma zamanı bellekte iki bitmap oluşturur. Bu bitmap'lerin her biri görüntüleme nesnesinin boyutundadır. Birincisi, görüntüleme nesnesinin rasterleştirilmiş bir versiyonu olarak oluşturulur ve sonrasında uygulanan filtre ile ikinci bir bitmap üretmek için kullanılır.

Grafiği tam boyut görüntüle
Filtre uygulandığında bellekte bulunan iki bitmap

Bir filtrenin özelliklerinden birini değiştirirken, ortaya çıkacak bitmap'in oluşturulması için bitmap'lerin ikisi de bellekte güncellenir. Bu işlem biraz CPU işleme gerektirir ve iki bitmap önemli bir miktar bellek kullanabilir.

Flash Player 10.1 ve AIR 2.5, tüm platformlarda yeni bir filtreleme davranışı sunar. Filtre 30 saniye içinde değiştirilmezse veya gizli veya ekran dışı ise, filtrelenmemiş bitmap tarafından kullanılan bellek boşaltılır.

Bu özellik tüm platformlarda bir filtre tarafından kullanılan belleğin yarısından tasarruf sağlar. Örneğin, bir bulanıklaştırma filtresi uygulanan bir metin nesnesi düşünün. Bu durumda metin basit dekorasyon için kullanılır ve değiştirilmez. 30 saniye sonra, bellekteki filtrelenmemiş bitmap boşaltılır. Metin 30 saniye boyunca gizli veya ekran dışı kalırsa aynı sonuç gerçekleşir. Filtre özelliklerinden biri değiştirilirse, bellekteki filtrelenmemiş bitmap yeniden oluşturulur. Bu özelliğe dinamik bitmap kaldırılması denir. Bu en iyileştirmelerde bile filtrelere dikkat edin; çünkü filtreler değiştirilirken yine de çok büyük miktarda işlemci veya GPU işlemesi gerektirir.

Mümkün olduğunda filtreleri taklit etmek için Adobe® Photoshop® gibi bir geliştirme aracı üzerinden oluşturulmuş bitmap'lerin kullanılması iyi bir uygulamadır. ActionScript’te çalışma zamanında oluşturulmuş dinamik bitmap'leri kullanmaktan kaçının. Harici olarak geliştirilmiş bitmap'lerin kullanılması, özellikle filtre özellikleri zaman içinde değişmediğinde, çalışma zamanının işlemci veya GPU yükünü azaltmasına yardımcı olur. Mümkünse bir bitmap üzerinde ihtiyaç duyduğunuz tüm efektleri geliştirme aracında oluşturun. Bitmap’i çalışma zamanında üzerinde hiçbir işlem yapmadan görüntüleyebilirsiniz, bu işlem çok daha hızlı olabilir.