Pour les dégradés, le problème ne se pose pas autant que pour les couches de rendu multiples, par exemple si vous avez un certain nombre de contrôles imbriqués, tous partiellement opaques. Jetez un coup d'œil à l'interface WPF Optimisation des performances guides disponibles. Il y a beaucoup d'informations à assimiler, mais avec les conseils sur l'équarrissage et les outils de performance vous devriez être en mesure d'apporter quelques améliorations.
UPDATE :
Jamie Rodriguez publiera certaines des discussions internes sur WPF chez Microsoft. Il y a eu un nouveau post aujourd'hui, qui inclut des conseils et des discussions sur performance lors du remoting .
Toutes les versions de WPF depuis WPF 3.5 SP1 ont été remotorisées (à la fois avec Remote Desktop et Terminal Server) en utilisant Bitmap Remoting.
Le transfert de bitmap fonctionne de la manière suivante :
- L'application est rendue sur le serveur à l'aide du rasterizer logiciel de WPF.
- Au fur et à mesure de l'exécution de l'application, le serveur suit les régions de la fenêtre de l'application qui sont nouvellement sales et qui doivent être mises à jour.
- Lorsqu'une région doit être mise à jour, le serveur crée une image compressée de la région sale et l'envoie au client.
- Une fois que le client a dessiné ce bitmap à l'endroit approprié sur sa propre fenêtre, la fenêtre du client est mise à jour
Compte tenu du fonctionnement de ce mécanisme de transfert, les performances peuvent être maximisées de plusieurs manières :
- Les régions sales doivent être aussi petites que possible afin que le moins de données possible soient envoyées sur le câble.
- Les animations ambiantes devraient être désactivées
- Par exemple, si l'arrière-plan d'une fenêtre est un dégradé animé, la fenêtre entière sera invalidée ou redessinée à chaque image.
- Le système n'optimise pas les parties occultées de t
- Par exemple, une animation complètement cachée derrière un autre élément opaque entraînera toujours l'invalidation de la région sale et la génération d'une image bitmap. Supprimez ces éléments de votre application.
- Les régions sales devraient être créées aussi rarement que possible.
- Désactiver autant d'animations que possible
- Pour les animations qui ne peuvent pas être complètement éliminées, réduisez le taux de rafraîchissement de l'animation à l'aide de la propriété DesiredFramerate.
- Les bitmaps des régions sales doivent être aussi simples que possible.
- Les applications fonctionnant sur TS doivent privilégier les couleurs unies plutôt que les dégradés ou autres remplissages exotiques (images inutiles, etc.), en particulier pour les pièces d'application qui seront redessinées fréquemment.
- Évitez les opérations qui sont particulièrement lentes lors de la re
- BitmapEffects / Effects / ShaderEffects, en particulier les flous et les ombres portées à grand rayon, sont assez lents dans les logiciels.
- 3D - le rasterizer logiciel 3D est beaucoup plus lent que le rendu matériel.