Megosztás a következőn keresztül:


A teljesítmény optimalizálása: A hardver előnyeinek kihasználása

A WPF belső architektúrája két renderelési folyamatból, hardverből és szoftverből áll. Ez a témakör információkat nyújt ezekről a renderelési folyamatokról, amelyek segítenek az alkalmazások teljesítményoptimalizálásával kapcsolatos döntések meghozatalában.

Hardveres renderelési folyamat

A WPF-teljesítmény meghatározásának egyik legfontosabb tényezője, hogy renderelésre van kötve – minél több képpontot kell renderelnie, annál nagyobb a teljesítmény költsége. Minél több renderelést lehet azonban kivenni a grafikus feldolgozó egységbe (GPU), annál nagyobb teljesítménybeli előnyöket érhet el. A WPF-alkalmazás hardveres renderelési folyamata teljes mértékben kihasználja a Microsoft DirectX funkcióit olyan hardvereken, amelyek legalább a Microsoft DirectX 7.0-s verzióját támogatják. További optimalizálásokat a Microsoft DirectX 7.0-s és PixelShader 2.0-s és újabb funkcióit támogató hardverek érhetnek el.

Szoftveres Renderelési Folyamat

A WPF szoftvermegjelenítési folyamat teljes mértékben cpu-kötött. A WPF kihasználja az SSE és az SSE2 utasításkészleteket a processzorban egy optimalizált, teljes funkcionalitású szoftveres raszterizátor implementálásához. A szoftverre való visszalépés zökkenőmentes, ha az alkalmazásfunkciók nem jeleníthetők meg a hardveres renderelési folyamattal.

A szoftveres módban történő renderelés legnagyobb teljesítményproblémája a kitöltési sebességhez kapcsolódik, amely a renderelt képpontok számaként van definiálva. Ha aggódik a szoftveres renderelési módban nyújtott teljesítmény miatt, próbálja meg minimalizálni a képpontok újrarajzolásának számát. Ha például egy kék háttérrel rendelkező alkalmazással rendelkezik, amely egy kissé áttetsző képet jelenít meg rajta, az alkalmazás összes képpontját kétszer fogja megjeleníteni. Ennek eredményeképpen kétszer annyi ideig tart az alkalmazás képpel való megjelenítése, mint ha csak a kék háttérrel rendelkezik.

Grafikus megjelenítési szintek

Előfordulhat, hogy nagyon nehéz megjósolni, hogy az alkalmazás milyen hardverkonfiguráción fog futni. Érdemes lehet azonban megfontolni egy olyan kialakítást, amely lehetővé teszi, hogy az alkalmazás zökkenőmentesen váltson a funkciók között, amikor különböző hardvereken fut, hogy teljes mértékben kihasználhassa az egyes hardverkonfigurációk előnyeit.

Ennek eléréséhez a WPF olyan funkciókat biztosít, amelyek meghatározzák a rendszer grafikus képességeit futásidőben. A grafikus képességeket úgy határozzuk meg, hogy a videokártyát a három megjelenítési képességszint egyikeként kategorizáljuk. A WPF egy API-t tesz elérhetővé, amely lehetővé teszi, hogy az alkalmazás lekérdezze a renderelési képesség szintjét. Az alkalmazás ezután futtatáskor különböző kódútvonalakat használhat a hardver által támogatott renderelési szinttől függően.

A grafikus hardver azon funkciói, amelyek a leginkább befolyásolják a renderelési szinteket:

  • Video RAM A videomemória mennyisége a grafikus hardveren határozza meg a képek összeállításához használható pufferek méretét és számát.

  • Pixel Shader A képpontárnyékoló egy grafikus feldolgozási függvény, amely képpontonként számítja ki a hatásokat. A megjelenített ábrák felbontásától függően több millió képpontot is fel kell dolgoznunk az egyes képkockákhoz.

  • Vertex Shader A csúcsárnyékoló egy grafikus feldolgozási függvény, amely matematikai műveleteket hajt végre az objektum csúcsadatain.

  • Többszöveges támogatás A többszöveges támogatás azt jelenti, hogy két vagy több különböző anyagmintát alkalmazhat egy 3D grafikus objektum keverési művelete során. A többszöveges támogatás mértékét a grafikus hardveren található többszöveges egységek száma határozza meg.

A képpontárnyékoló, a csúcspont-árnyékoló és a többszöveges funkciók meghatározott DirectX-verziószintek meghatározására szolgálnak, amelyek a WPF különböző renderelési szintjeinek meghatározására szolgálnak.

A grafikus hardver funkciói határozzák meg a WPF-alkalmazások renderelési képességét. A WPF-rendszer három megjelenítési szintet határoz meg:

  • Rendering Tier 0 Nincs grafikus hardvergyorsítás. A DirectX verziószintje kisebb, mint a 7.0-s verzió.

  • Rendering Tier 1 Részleges grafikus hardvergyorsítás. A DirectX verziószintje nagyobb vagy egyenlő a 7.0-s verziónál, és kisebb, mint a 9.0-s verzió.

  • Rendering Tier 2 A legtöbb grafikus funkció grafikus hardveres gyorsítást használ. A DirectX verziószintje nagyobb vagy egyenlő a 9.0-s verziónál.

A WPF renderelési rétegekkel kapcsolatos további információkért lásd grafikus megjelenítési szinteket.

Lásd még