Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

[WP7] Performance de vos applications Silverlight

L’émulateur Windows Phone 7 se comporte comme une machine virtuelle, pour tirer profit de votre PC, n’oublier pas d’activer dans le bios, la prise en charge de la virtualisation par votre processeur.

De plus il peut utiliser la puissance de votre carte graphique, cela augmente grandement les performances... Pour être sur que votre GPU est compatible, il faut qu'il supporte WDDM 1.1 et DirectX 10. Pour vérifier cela, il faut:

  1. Depuis le menu Démarrer, faite Executer
  2. Executer dxdiag
  3. Vérifier dans l'onglet "Display" que vous avez bien DDI Versions: 10 et Driver Model: WDDM 1.1
image

Maintenant, parlons spécifiquement des éléments pour silverlight:

Les animations via storyboard sont accélérées par le GPU
Si vous créez une animation avec un storyboard, elle utilisera automatiquement le GPU, vous n'avez rien n'a effectuer, c'est automatique

Les animations via code ont besoin de l'attribut CacheMode
Si vous déplacer des éléments via code, ils ne seront pas automatiquement accéléré par le GPU, pour cela, ajouter l'attribut CacheMode="BitmapCache". Attention, ne l'appliquer que si l'élément ne change pas visuellement !!! En effet, si l’élément change, le cache doit être invalidé et on perd tout les avantages du cache…

Compteur de performance
Il est possible d'ajouter un compteur de performance, dans votre code, par exemple dans le constructeur de l'App.cs, ajouter:

Application.Current.Host.Settings.EnableFrameRateCounter = true;

Vous aurez le compteur qui s’affiche en haut de l'écran. Le détails de chaque compteur est dans la capture d’écran… 

image 



Qu'est ce qui est utilisé par le GPU ???
Pour un maximum de performance, il faut qu’un maximum d’éléments soit rendu par le GPU. Il est possible de le voir en ajoutant ceci dans le code:

Application.Current.Host.Settings.EnableCacheVisualization = true;

Tous les éléments qui ne sont pas pris en compte par le GPU n'ont pas leurs couleurs normales.

Qu'est ce qui est redessiné à chaque frame ???
Pour des performances optimales, il est nécessaire de minimiser ce qui est en-train d'être redessinée sur chaque frame. Nous pouvons utiliser ceci dans le code:

Application.Current.Host.Settings.EnableRedrawRegions = true;

Ceci montre une copie fantôme à chaque fois qu’un élément est redessiné. Si vous voyez beaucoup d'éléments qui ont besoin d'être redessiné, alors il est peut-être nécessaire d'ajouter des attributs CacheMode pour décharger le CPU (Pour info, lorsque quelque chose est géré par le GPU, vous ne verrez pas d'éléments redessinés).

Pour plus d'info, je vous conseil l’excellente session de Seema Ramchandani lors du derniers Mix : http://live.visitmix.com/MIX10/Sessions/CL60

Publié mardi 8 juin 2010 10:19 par Nicolas
Classé sous : ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01