1 / 40

Performance et Optimisation des Applications Windows Phone 7

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. Microsoft Services: Un accompagnement global de nos clients. Architecture & Planning Planification.

nasnan
Download Presentation

Performance et Optimisation des Applications Windows Phone 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Performance et Optimisation des Applications Windows Phone 7 Mardi 8 Février 2011 Luc Vo VanConsultant .NET/UXMicrosoft France Simon Ferquel ConsultantAccess IT IdF

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

  3. Notre positionnement est d’intervenir sur les projets critiques et les technologies récentes Criticité du projet • 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. Partenaires Maturité de la technologie • 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%

  4. Access It IdFen 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,… .NET Collab. BI

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

  6. Hardware • Processeur 1GHz Snapdragon • Instructions ARM • Résolution 480x800 • GPU intégré

  7. Silverlight Rendering

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

  9. Silverlight Threading Thread UI Thread Composition • Entrées (touch) • Layout • Measure et Arrange • Code utilisateur • Callbacks “par frame” • Gestionairesd’é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

  10. Silverlight Threading • Composition et affichage Thread UI Thread de composition • Animations simples

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

  12. Emulateur • Utilise le GPU du PC (DirectX 10 requis) • Le CPU / GPU estsouvent beaucoup plus puissant • Utilise un seulcoeur

  13. Démo Différences entre émulateur et appareil

  14. Outils et Compteurs

  15. Compteur de Performance Application.Current.Host.Settings.EnableFrameRateCounter = true; Thread de composition (fps) Thread UI (fps) Textures (kb) # de surfaces # de “IRT” Fill Rate

  16. FillRate • Nombre de pixels inclusdans la totalité des textures passées au GPU • BitmapCacheaugmente 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

  17. RedrawRegions Application.Current.Host.Settings.EnableRedrawRegions = true; Change la couleur des visuels à chaquefoisqu’ilssontredessinés(CPU / Thread UI)

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

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

  20. 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

  21. Garbage Collection

  22. 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

  23. Garbage Collection Stack byte[10000]

  24. 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

  25. Utilisation mémoire

  26. GC : XNA et Silverlight • XNA basé sur un gameloop • Minimiser l’allocation dans Updateet 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

  27. Démo Mémoire et garbage collection

  28. 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

  29. SilverlightTips & Tricks

  30. 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/

  31. 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

  32. Panorama et Pivot • Panorama charge l’intégralité de sesPanoramaItems • Pivot ne charge quel’élément en cours et le prochain • Repousser le chargement des données ‘IsLoading’

  33. Tombstoning • Evitez ApplicationSettings pour le contenu complexe (qui sérialise en XML) • BinarySerializerest la méthode de sérialisation la plus performante.

  34. Démo Utilisation des contrôles optimisés

  35. 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, Dirtyregions…

  36. 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

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

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

More Related