Bagikan melalui


Mengoptimalkan Performa: Memanfaatkan Perangkat Keras

Arsitektur internal WPF memiliki dua alur penyajian, perangkat keras dan perangkat lunak. Topik ini menyediakan informasi tentang alur penyajian ini untuk membantu Anda membuat keputusan tentang pengoptimalan performa aplikasi Anda.

Alur Penyajian Perangkat Keras

Salah satu faktor terpenting dalam menentukan performa WPF adalah render terikat—semakin banyak piksel yang harus Anda render, semakin besar biaya performanya. Namun, semakin banyak penyajian yang dapat dilepaskan ke unit pemrosesan grafis (GPU), semakin banyak manfaat performa yang dapat Anda peroleh. Alur penyajian perangkat keras aplikasi WPF memanfaatkan sepenuhnya fitur Microsoft DirectX pada perangkat keras yang mendukung minimal Microsoft DirectX versi 7.0. Pengoptimalan lebih lanjut dapat diperoleh oleh perangkat keras yang mendukung fitur Microsoft DirectX versi 7.0 dan PixelShader 2.0+.

Alur Penyajian Perangkat Lunak

Alur penyajian perangkat lunak WPF sepenuhnya terikat CPU. WPF memanfaatkan set instruksi SSE dan SSE2 di CPU untuk mengimplementasikan rasterizer perangkat lunak yang dioptimalkan dan berfungsi penuh. Fallback ke perangkat lunak mulus kapan saja fungsionalitas aplikasi tidak dapat dirender menggunakan alur penyajian perangkat keras.

Masalah performa terbesar yang akan Anda temui saat merender dalam mode perangkat lunak terkait dengan tingkat pengisian, yang didefinisikan sebagai jumlah piksel yang Anda render. Jika Anda khawatir tentang performa dalam mode penyajian perangkat lunak, cobalah untuk meminimalkan berapa kali piksel digambar ulang. Misalnya, jika Anda memiliki aplikasi dengan latar belakang biru, yang kemudian merender gambar yang sedikit transparan di atasnya, Anda akan merender semua piksel dalam aplikasi dua kali. Akibatnya, akan memakan waktu dua kali lebih lama untuk merender aplikasi dengan gambar daripada jika Anda hanya memiliki latar belakang biru.

Tingkat Penyajian Grafis

Mungkin sangat sulit untuk memprediksi konfigurasi perangkat keras yang akan dijalankan aplikasi Anda. Namun, Anda mungkin ingin mempertimbangkan desain yang memungkinkan aplikasi Anda untuk beralih fitur dengan mulus saat berjalan pada perangkat keras yang berbeda, sehingga dapat memanfaatkan sepenuhnya setiap konfigurasi perangkat keras yang berbeda.

Untuk mencapai hal ini, WPF menyediakan fungsionalitas untuk menentukan kemampuan grafis sistem saat runtime. Kemampuan grafis ditentukan dengan mengategorikan kartu video sebagai salah satu dari tiga tingkat kemampuan penyajian. WPF mengekspos API yang memungkinkan aplikasi untuk mengkueri tingkat kemampuan penyajian. Aplikasi Anda kemudian dapat mengambil jalur kode yang berbeda pada waktu proses tergantung pada tingkat penyajian yang didukung oleh perangkat keras.

Fitur perangkat keras grafis yang paling berdampak pada tingkat tingkat penyajian adalah:

  • RAM Video Jumlah memori video pada perangkat keras grafis menentukan ukuran dan jumlah buffer yang dapat digunakan untuk menyusun grafis.

  • Pixel Shader A pixel shader adalah fungsi pemrosesan grafis yang menghitung efek per piksel. Tergantung pada resolusi grafik yang ditampilkan, mungkin ada beberapa juta piksel yang perlu diproses untuk setiap bingkai tampilan.

  • Vertex Shader A vertex shader adalah fungsi pemrosesan grafis yang melakukan operasi matematika pada data vertex objek.

  • Dukungan Multitekstur Dukungan Multitekstur mengacu pada kemampuan untuk menerapkan dua atau lebih tekstur yang berbeda selama operasi pencambelan pada objek grafis 3D. Tingkat dukungan multitekstur ditentukan oleh jumlah unit multitekstur pada perangkat keras grafis.

Fitur shader piksel, shader vertex, dan multitekstur digunakan untuk menentukan tingkat versi DirectX tertentu, yang, pada gilirannya, digunakan untuk menentukan tingkat penyajian yang berbeda di WPF.

Fitur perangkat keras grafis menentukan kemampuan penyajian aplikasi WPF. Sistem WPF mendefinisikan tiga tingkat penyajian:

  • Penyajian Tingkat 0 Tidak ada akselerasi perangkat keras grafis. Tingkat versi DirectX kurang dari versi 7.0.

  • Merender akselerasi perangkat keras grafis Parsial Tingkat 1 . Tingkat versi DirectX lebih besar dari atau sama dengan versi 7.0, dan lebih kecil dari versi 9.0.

  • Rendering Tier 2 Sebagian besar fitur grafis menggunakan akselerasi perangkat keras grafis. Tingkat versi DirectX lebih besar dari atau sama dengan versi 9.0.

Untuk informasi selengkapnya tentang tingkat penyajian WPF, lihat Tingkat Rendering Grafis.

Baca juga