WPF, kép caching

Ha a megjelenített tartalom a gyakori frissítést okoz, bitmap caching indokolt lehet. Az a tény, hogy az egymást követő újrarajzolás fog bekövetkezni gyorsabb. Ennek egyik példája a használata BitmapCacheBrush alakzatok felületi amíg egy másik animációs objektumokat mozgatni felett. Annak ellenére, hogy ez a szám nem változik, a különböző részek el vannak rejtve, és jelenik meg, amely előírja, újrarajzolás.

Sikertelen caching stratégia még több teljesítmény problémák, mint nem teljesen optimalizált alkalmazások. Ezért ne használjon gyorsítótárat, ha nem tetszik a fenti ajánlásokat. Is használja a profilalkotás eszköz, mint Perforator annak ellenőrzésére, hogy a választott stratégia növeljük a termelékenységet.

A jobb megértés annak szükségességét, hogy kísérletezzenek a példa. Erre mutat példát a, ahol egy egyszerű animáció mozog alak - egy négyzet - felszínén vászon, Path elem, amely tartalmaz egy bonyolult geometriájú. Ahogy mozog a felület mentén a tér WPF közegben kénytelen újra kell számolni a Path és a hiányzó szakaszok. Ez egy meglepően nagy terhelés a CPU, és animáció is lesz folytonos.

Számos módja van, hogy megoldja ezt a problémát. Egyikük - helyett a háttérben bitkép WPF működhet hatékonyabban. A rugalmasabb megoldás lehet a bitmap caching, amely tárolja a háttérben, mint egy interaktív elemet.

Annak érdekében, hogy bitmap caching, be kell állítani az ingatlan CacheMode megfelelő elem BitmapCache. Minden egyes elem támogatja ezt a funkciót, amely lehetővé teszi, hogy kiválassza pontosan milyen elem használható caching:

WPF, kép caching

Ha az elem a gyorsítótárban, más elemeket is tartalmazó, mint például egy konténer elrendezése, annak minden al-elemek gyorsítótárazhatók bittérképes. Ezért óvatosan kell eljárni, ha hozzá cache semmit mint a vászon; csinálni, ha a Canvas elem kis- és annak tartalma nem változott.

Miután ez az egyetlen egyszerű változás azonnal észrevenni a különbséget. Az ablak jelenik meg valamivel lassabb. De az animáció kerül sor simábban, és a terhelés a CPU jelentősen csökken. Ez könnyen megállapíthatja nézi a feladatkezelő: gyakran tölt értéke közel 100% -os lehet csökkenteni kevesebb, mint 20%.

Tegyük fel például, hogy az előző példában a második párhuzamos animációs Path növeli tízszer képest az eredeti méretét, majd visszatér az eredeti méretére. Annak érdekében, hogy jó minőségű, lehet cache bitmap Path kép méretei akár ötször nagyobb, mint a jelenlegi méret: