La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

2 Performance et Optimisation des Applications Windows Phone 7 Mardi 8 Février 2011 Luc Vo Van Consultant.NET/UX Microsoft France Simon Ferquel Consultant.

Présentations similaires


Présentation au sujet: "2 Performance et Optimisation des Applications Windows Phone 7 Mardi 8 Février 2011 Luc Vo Van Consultant.NET/UX Microsoft France Simon Ferquel Consultant."— Transcription de la présentation:

1

2 2 Performance et Optimisation des Applications Windows Phone 7 Mardi 8 Février 2011 Luc Vo Van Consultant.NET/UX Microsoft France Simon Ferquel Consultant Access IT IdF

3 3 33 Microsoft Services: Un accompagnement global de nos clients Architecture & Planning Planification Conseil et Projets Déploiement et adoption Support Optimisation et Opération Evaluation Planification Développement Déploiement Stabilisation Opérations Support Support Premier Enterprise Strategy Consulting Services Division Services France 2010 180 Consultants 125 Technical Account Managers 190 Ingénieurs Support 17 Responsables de Mission 41 Partenaires référencés Division Services France 2010 180 Consultants 125 Technical Account Managers 190 Ingénieurs Support 17 Responsables de Mission 41 Partenaires référencés www.microsoft.fr/services Division Services Monde 2010 82 pays couverts 18 000 employés 35 000 partenaires 44 langues parlées par nos ingénieurs Division Services Monde 2010 82 pays couverts 18 000 employés 35 000 partenaires 44 langues parlées par nos ingénieurs

4 4 44 Criticité du projet Maturité de la technologie Partenaires Notre engagement auprès de nos partenaires est : De leur assurer un transfert d’expertise, De leur apporter notre support sur les dernières technologies, De leur donner accès aux meilleures pratiques de mise en œuvre et de support. Nos clients et partenaires sont particulièrement satisfaits par… Le niveau d’engagement des consultants : 94% La gestion de l’équipe de projet : 92% Les compétences techniques des consultants : 91% La relation avec les équipes du client : 90% Nos clients et partenaires sont particulièrement satisfaits par… Le niveau d’engagement des consultants : 94% La gestion de l’équipe de projet : 92% Les compétences techniques des consultants : 91% La relation avec les équipes du client : 90% Notre positionnement est d’intervenir sur les projets critiques et les technologies récentes

5 5 Access It IdF en quelques mots… Société de services, conseil / expertise, et formation, exclusivement sur les technologies Microsoft 20+ collaborateurs spécialisés sur les techno MS, dont 11 MVP Interventions en mode : Conseil, expertise, coaching et formation Réalisation, au forfait ou en Assistance Technique.NET Plateforme Applicative Framework et langages.Net, AZURE, Silverlight, WPF/Surface, VS/TFS, Windows Phone 7,… SQL Server (SSIS, SQL, SSAS, SSRS), PowerPivot, SharePoint & on-line, Office 365,….NETCollab. BI

6 6 Agenda Hardware Silverlight sur Windows Phone 7 Outils et compteurs Spécificités de la CLR Windows Phone 7 Optimisations d’applications Silverlight

7 7 Hardware Processeur 1GHz Snapdragon Instructions ARM Résolution 480x800 GPU intégré

8 8 Silverlight Rendering PhoneApplicationPage LayoutRoot (Grid) TitleGrid textBlockPageTitle textBlockListTitle Content Grid Your content

9 9 Silverlight Threading 1 Thread UI 1 Thread de composition Plusieurs threads de travail (worker) Threads « utilisateurs » Threads de décodage de médias

10 10 Silverlight Threading Entrées (touch) Layout Measure et Arrange Code utilisateur Callbacks “par frame” Gestionaires d’évènements Converters… Animations non prises en charge par le GPU Animations de propriétés de type double RenderTransforms Opacity Perspective Transforms Clips rectangulaires Thread UIThread Composition

11 11 Silverlight Threading Thread UI Animations simples Thread de composition Composition et affichage

12 12 Démo Thread UI vs. Thread de composition

13 13 Emulateur Utilise le GPU du PC (DirectX 10 requis) Le CPU / GPU est souvent beaucoup plus puissant Utilise un seul coeur

14 14 Démo Différences entre émulateur et appareil

15 15 Outils et Compteurs

16 16 Compteur de Performance Application.Current.Host.Settings.EnableFrameRateCounter = true; 1.Thread de composition (fps) 2.Thread UI (fps) 3.Textures (kb) 4.# de surfaces 5.# de “IRT” 6.Fill Rate

17 17 FillRate Nombre de pixels inclus dans la totalité des textures passées au GPU BitmapCache augmente le Fill Rate En 800x480, fill rate == 1.0 Impact sur les performances lorsque le fill rate est trop important ( > 3 ) Fill rate < 2 jusqu’a 60 fps Fill rate > 4.5 jusqu’a 30 fps Fill rate > 6.5 jusqu’a 20 fps

18 18 Redraw Regions Application.Current.Host.Settings.EnableRedrawRegions = true;

19 19 Cache Visualizations Application.Current.Host.Settings.EnableCacheVisualization = true; Permet de voir le nombre de textures utilisées pour le rendu d’une zone de l’écran

20 20 Démo Utilisation des outils et résolution des problèmes

21 21 La CLR de Windows Phone 7 Basée sur celle du CF 3.5, estampillée 3.7 Dédiée aux appareils légers Séparation de la couche UI : XNA et Silverlight Même gestion de la mémoire et du JIT Assemblies réutilisables entre XNA et Silverlight

22 22 Garbage Collection

23 23 Garbage Collection Déclenché tous les 1 Mo alloué (non modifiable) En moyenne sur les appareils disponibles aujourd’hui, 1 Mo collecté = 10 ms. Dépend de la complexité du graphe Non générationnel, bloque le thread UI en Silverlight

24 24 byte[10000] Stack Garbage Collection

25 25 Garbage Collection Déclenché tous les 1 Mo alloué En moyenne sur les appareils disponibles aujourd’hui, 1 Mo collecté = 10 ms. Dépend de la complexité du graphe. Non générationnel, bloque le thread UI en Silverlight LINQ, voire le foreach, peuvent être gourmand, ne pas utiliser lors des manipulations à haute réactivité! Forcer = null sur les grosses structures peut hinter le GC

26 Utilisation mémoire

27 27 GC : XNA et Silverlight XNA basé sur un game loop Minimiser l’allocation dans Update et Draw, chacun est appelé 30 fois par seconde Attention à LINQ et aux foreach Bon exercice pour les développeurs Silverlight ! Silverlight basé sur de l’évènementiel Moins sensible au pauses liées au GC Profiter des interactions utilisateurs pour collecter Le feedback subtil améliore la performance perçue

28 28 Démo Mémoire et garbage collection

29 29 Just-in-Time compilation (JIT) Optimisé pour s’exécuter rapidement, plutôt que générer du code rapide JIT Sharing Les assemblies partagées ne sont jittées qu’une fois. Le code natif résultant peut être réutilisé directement

30 30 Silverlight Tips & Tricks

31 31 PerformanceProgressBar La ProgressBar en indeterminate par défaut est animée entièrement dans le thread UI  PerformanceProgressBar déporte l’animation sur le thread de composition Animation de chargement plus fluide (UX : important!) Peu ou pas de ralentissement sur les manipulations http://www.jeff.wilcox.name/2010/08/performanceprogressbar/

32 32 LowProfileImageLoader Déporte le chargement et le décodage des images vers un worker thread Accessoirement, les JPEG sont décodés en hardware, mais les PNG en software. Exemples de candidats pour JPEG : fonds de Panorama, images dans ListBoxes… http://blogs.msdn.com/b/delay/archive/2010/09/02/keep-a-low-profile- lowprofileimageloader-helps-the-windows-phone-7-ui-thread-stay-responsive- by-loading-images-in-the-background.aspx

33 33 Panorama et Pivot Panorama charge l’intégralité de ses PanoramaItems Pivot ne charge que l’élément en cours et le prochain Repousser le chargement des données ‘IsLoading’

34 34 Tombstoning Evitez ApplicationSettings pour le contenu complexe (qui sérialise en XML) BinarySerializer est la méthode de sérialisation la plus performante.

35 35 Démo Utilisation des contrôles optimisés

36 36 En synthèse Identifier les problèmes potentiels en amont Framerate, consommation mémoire, temps de chargement… Surveiller à chaque changement dans l’arbre visuel Framerate, Fill Rate, Dirty regions…

37 37 En synthèse Tester sur un appareil, TRES SOUVENT Incorporer les éléments de design le plus tôt possible Utiliser les contrôles et comportements optimisés

38 38 Des questions ? Blog de Simon Ferquel http://www.simonferquel.net/blog/ Readiculous! Blog de Luc Vo Van http://blogs.msdn.com/luc ap ShapeChase

39 39 MSDN et TechNet : l’essentiel des ressources techniques à portée de clic http://technet.com http://msdn.com Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs

40


Télécharger ppt "2 Performance et Optimisation des Applications Windows Phone 7 Mardi 8 Février 2011 Luc Vo Van Consultant.NET/UX Microsoft France Simon Ferquel Consultant."

Présentations similaires


Annonces Google