Performansı İyileştirme: Donanımdan Yararlanma

WPF'nin iç mimarisinde iki işleme işlem hattı vardır: donanım ve yazılım. Bu konu, uygulamalarınızın performans iyileştirmeleri hakkında karar vermenize yardımcı olmak için bu işleme işlem hatları hakkında bilgi sağlar.

Donanım İşleme İşlem Hattı

WPF performansını belirlemede en önemli faktörlerden biri, işleme bağlı olmasıdır; ne kadar çok piksel işlemek zorundaysanız, performans maliyeti de o kadar yüksek olur. Ancak, grafik işleme birimine (GPU) ne kadar çok işleme yüklenebiliyorsa, o kadar fazla performans avantajı elde edebilirsiniz. WPF uygulama donanım işleme işlem hattı, en az Microsoft DirectX 7.0 sürümünü destekleyen donanımdaki Microsoft DirectX özelliklerinden tam olarak yararlanır. Microsoft DirectX sürüm 7.0 ve PixelShader 2.0+ özelliklerini destekleyen donanımlar daha fazla iyileştirme elde edilebilir.

Yazılım İşleme İşlem Hattı

WPF yazılım işleme işlem hattı tamamen CPU'ya bağlıdır. WPF, iyileştirilmiş, tam özellikli bir yazılım rasterleştiricisi uygulamak için CPU'daki SSE ve SSE2 yönerge kümelerinden yararlanır. Donanım işleme işlem hattı kullanılarak uygulama işlevselliği işlenemediğinde yazılıma geri dönüş sorunsuz olur.

Yazılım modunda işlenirken karşılaşacağınız en büyük performans sorunu, işlemekte olduğunuz piksel sayısı olarak tanımlanan doldurma hızıyla ilgilidir. Yazılım işleme modunda performans konusunda endişeleniyorsanız, pikselin yeniden çizilma sayısını en aza indirmeyi deneyin. Örneğin, mavi arka planı olan ve üzerinde biraz saydam bir görüntü oluşturan bir uygulamanız varsa, uygulamadaki tüm pikselleri iki kez işlersiniz. Sonuç olarak, uygulamanın görüntüyle işlenmesi, yalnızca mavi arka plana sahip olduğunuzdan iki kat daha uzun sürer.

Grafik İşleme Katmanları

Uygulamanızın üzerinde çalıştırılacağı donanım yapılandırmasını tahmin etmek çok zor olabilir. Ancak, uygulamanızın farklı donanımlarda çalışırken özellikleri sorunsuz bir şekilde değiştirmesine olanak tanıyan bir tasarım düşünebilirsiniz, böylece her farklı donanım yapılandırmasından tam olarak yararlanabilir.

Bunu başarmak için WPF, çalışma zamanında bir sistemin grafik özelliğini belirlemeye yönelik işlevsellik sağlar. Grafik özelliği, ekran kartını üç işleme yeteneği katmanından biri olarak kategorilere ayırarak belirlenir. WPF, bir uygulamanın işleme yeteneği katmanını sorgulamasına olanak tanıyan bir API'yi kullanıma sunar. Ardından uygulamanız, donanım tarafından desteklenen işleme katmanına bağlı olarak çalışma zamanında farklı kod yolları alabilir.

Grafik donanımının işleme katmanı düzeylerini en çok etkileyen özellikleri şunlardır:

  • Video RAM'i Grafik donanımındaki video belleği miktarı, grafikleri oluşturmak için kullanılabilecek arabelleklerin boyutunu ve sayısını belirler.

  • Piksel Gölgelendiricisi Piksel gölgelendiricisi, piksel başına efektleri hesaplayan bir grafik işleme işlevidir. Görüntülenen grafiklerin çözünürlüğüne bağlı olarak, her ekran çerçevesi için işlenmesi gereken birkaç milyon piksel olabilir.

  • Köşe Gölgelendiricisi Köşe gölgelendiricisi, nesnenin köşe verileri üzerinde matematiksel işlemler gerçekleştiren bir grafik işleme işlevidir.

  • Çoklu Metin Desteği Çokmetinli destek, 3B grafik nesnesi üzerinde bir karıştırma işlemi sırasında iki veya daha fazla farklı doku uygulama özelliğini ifade eder. Çoklu metin desteğinin derecesi, grafik donanımındaki çokmetinli birim sayısına göre belirlenir.

Piksel gölgelendiricisi, köşe gölgelendiricisi ve çokmetinlilik özellikleri, WPF'de farklı işleme katmanlarını tanımlamak için kullanılan belirli DirectX sürüm düzeylerini tanımlamak için kullanılır.

Grafik donanımının özellikleri bir WPF uygulamasının işleme özelliğini belirler. WPF sistemi üç işleme katmanı tanımlar:

  • İşleme Katmanı 0 Grafik donanım hızlandırması yok. DirectX sürüm düzeyi sürüm 7.0'dan küçüktür.

  • İşleme Katmanı 1 Kısmi grafik donanım hızlandırması. DirectX sürüm düzeyi, sürüm 7.0'dan büyük veya buna eşit ve sürüm 9.0'dan küçüktür .

  • İşleme Katmanı 2 Grafik özelliklerinin çoğu grafik donanım hızlandırmasını kullanır. DirectX sürüm düzeyi sürüm 9.0'dan büyük veya buna eşittir.

WPF işleme katmanları hakkında daha fazla bilgi için bkz . Grafik İşleme Katmanları.

Ayrıca bkz.