SlideShare une entreprise Scribd logo
palais des
congrès
Paris




7, 8 et 9
février 2012
Analyse et optimisation
des performances des
applications Windows
Phone
7 février 2012

Charlotte Gaidon & Jérémy Alles
THALES Services Grenoble
Présentation
  Charlotte Gaidon
    Formatrice WPF / SL
      charlotte.gaidon@gmail.com
     @nutchad

  Jérémy Alles
    MVP Client App Dev / WPF Disciples
      jeremy.alles@gmail.com
      @jalpf
      www.japf.fr

  THALES
    Cœur de métier : applications industrielles
    Agence de 200 collaborateurs à Grenoble
    Pôle d’expertise sur les technologies Microsoft
Vous voulez développer une appli Windows Phone ?                           Inscrivez-vous !


Profitez d’un programme d’accompagnement pour développeurs, à la carte et sans engagement

    –     Un guide vous contacte et vous accompagne personnellement

    –     Il met à votre disposition des ressources : accès gratuits* Marketplace, prêts/dons* de téléphone…

    –     Il vous propose du coaching technique et design

    –     Il vous aide à rendre visible votre application en ligne et à des événements




        *Dans la limite des quantités disponibles
La certification…




   5 20 90    s

Temps de démarrage      Temps de réactivité
                                              s

                                                  Mémoire max
                                                                Mo




                     bit.ly/techdays12_certif
Agenda

  Application de test
  Device vs Emulateur
  Nos amis les threads
  Outils
    Compteurs de performance
    Profiler de Visual Studio



  Bonnes pratiques
    BitmapCache & Compositor
    Visibility vs Opacity

    Médias
    Perception & Réalité



  Conclusion
www.2day-wp7.com
DEMO

Device vs Emulateur
Emulateur vs Device

                      Emulateur    Lumia 800   Omnia 7

               10.2
                                                                9.4
         7.2                             7.3
   4,2                             6.4                    6.3

                                                    3.1
                             1.6


   Lancement                 Sauvegarde              Affichage
Nos amis les threads
Silverlight




 input         rasterize   binding      animations   layout               OS interop

                                     User Interface Thread


    dispatch                            networking            parsing   dispatch
                                      Background Thread
Windows Phone
            7.0
            7.5
            Mango
                                             Touch Thread


             primitive animations                              composite onto back buffer

                                           Compositor Thread

  touch         rasterize       binding      animations   layout                      OS interop

                                          User Interface Thread


  dispatch                                   networking            parsing          dispatch
                                           Background Thread
Outils
Compteurs de performance
    Composition thread frame
              rate
                                           30    45   60

       UI thread frame rate
                                      15    30        60

     Texture memory usage
                                  Mémoire vidéo utilisée
                                  pour les textures
         Surface counter          Surfaces passées au
                                  GPU
                                  Surfaces intermédiaires
   Intermediate surface counter
                                  créées pour la
                                  composition
      Screen fill rate counter
                                  0         2    3
DEMO

Compteurs de performance
DEMO

Suivi consommation mémoire en temps-
réel

         bit.ly/techdays12_memoire
Profiler de Visual Studio 2010

  Nouvel outil apporté par Mango

  Entièrement intégré à Visual Studio

  Cibles                          public void DoWork()
                                  {
    Frame rate                     for (int i = 0; i < 100; i++)




                                                                      exclusive
                      inclusive
    CPU
                                    {
                                      // calcul...
    Mémoire                        }
    Médias
                                      var result = ComputeResult();
    GC                           }
DEMO

Analyse de la mémoire avec le profiler
Bilan profiler mémoire

  Penser à se désabonner des events




  Attention aux délégués anonymes



  Le GC bloque le thread UI
DEMO

Analyse de la performance avec le
profiler
Bilan profiler (1)

   Arbre Visuel
    Avant : total = 29 / profondeur = 8
    Après : total = 16 / profondeur = 4
Bilan profiler (2)

   Binding & Visibility




   Ne pas surcharger le thread graphique
Bonnes pratiques
BitmapCache / Compositor




  Contrôle «PivotIndicator »
  1 rectangle dont on anime la position
DEMO

BitmapCache + Compositor
Cacher par opacité ?


  Visibility (Collapsed  Visible)
   compromis temps / mémoire



  Opacity (0  1)
   à combiner avec BitmapCache



            bit.ly/techdays12_hiding
DEMO

Visibility vs Opacity
Bien gérer les images

  Format : jpg ou png ?

  Bonne résolution !

  XAML vs image…
   CreateOptions="BackgroundCreation"

   BuildAction = Content
DEMO

« Please wait... »
Performance & Perception

  Toujours montrer de l’activité à l’utilisateur
    (Performance)ProgressBar

    SplashScreen animé

    Tilt effect

    Transition entre les pages

    …
Mais aussi… (1)

  Limiter la taille des assemblies

  Créer les visuels quand on a besoin
   Virtualisation UI
  Optimiser vos données
   Virtualisation DATA
                              bit.ly/techdays12_LLS
  Optimisation LongListSelector

  Vidéo funbit.ly/techdays12_smokebyWP
Et encore… (2)

  On adore C# Async 
Conclusion
Conclusion

   Tester sur un device en conditions réelles
   Utiliser les outils et les spécificités de la
   plateforme
   « Less is more »




   Merci
    Pierre Cauchois (Microsoft)
    Jeff Wilcox (Microsoft)
    Rahim Zaknoun (Nokia)
Pour aller plus loin

                                               Prochaines sessions des Dev Camps
  Chaque semaine, les                            10
                                                          Live     Open Data - Développer des applications riches avec le
                                               février
  DevCamps                                      2012

                                                 16
                                                         Meeting   protocole Open Data


  ALM, Azure, Windows Phone, HTML5, OpenData   février
                                                          Live
                                                         Meeting
                                                                   Azure series - Développer des applications sociales sur
                                                                   la plateforme Windows Azure
                                                2012
  http://msdn.microsoft.com/fr-fr/devcamp
                                                 17
                                                          Live     Comprendre le canvas avec Galactic et la librairie
                                               février
                                                         Meeting   three.js
                                                2012

  Téléchargement, ressources                     21
                                               février
                                                          Live     La production automatisée de code avec CodeFluent
                                                         Meeting   Entities
  et toolkits : RdV sur MSDN                    2012

                                               2 mars     Live     Comprendre et mettre en oeuvre le toolkit Azure pour
  http://msdn.microsoft.com/fr-fr/              2012     Meeting   Windows Phone 7, iOS et Android

                                               6 mars     Live
                                                                   Nuget et ALM
                                                2012     Meeting

  Les offres à connaître                       9 mars
                                                2012
                                                          Live
                                                         Meeting
                                                                   Kinect - Bien gérer la vie de son capteur


         90 jours d’essai gratuit de Windows   13 mars
                                                2012
                                                          Live
                                                         Meeting
                                                                   Sharepoint series - Automatisation des tests

         Azure                                 14 mars    Live     TFS Health Check - vérifier la bonne santé de votre
          www.windowsazure.fr                   2012     Meeting   plateforme de développement

                                               15 mars    Live     Azure series - Développer pour les téléphones, les
                                                2012     Meeting   tablettes et le cloud avec Visual Studio 2010
         Jusqu’à 35% de réduction sur Visual   16 mars    Live     Applications METRO design - Désossage en règle d'un
         Studio Pro, avec l’abonnement MSDN     2012     Meeting   template METRO javascript

                                               20 mars    Live     Retour d'expérience LightSwitch, Optimisation de
          www.visualstudio.fr                   2012     Meeting   l'accès aux données, Intégration Silverlight

                                               23 mars    Live     OAuth - la clé de l'utilisation des réseaux sociaux dans
                                                2012     Meeting   votre application
Merci ! Questions ?

  Charlotte Gaidon
    charlotte.gaidon@gmail.com
    @nutchad

  Jérémy Alles
     jeremy.alles@gmail.com
     @jalpf
     www.japf.fr

   Bientôt disponible : www.2day-wp7.fr

Contenu connexe

Tendances

Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Microsoft
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALM
Jason De Oliveira
 
WPF 4.5 : Quoi de neuf pour les développeurs ?
WPF 4.5 : Quoi de neuf pour les développeurs ?WPF 4.5 : Quoi de neuf pour les développeurs ?
WPF 4.5 : Quoi de neuf pour les développeurs ?
Microsoft
 
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et SilverlightDéveloppement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Microsoft
 
Introduction à Samsung bada
Introduction à Samsung badaIntroduction à Samsung bada
Introduction à Samsung bada
BeMyApp
 
Solutions pour l’optimisation de l’infrastructure des établissements scolaires
Solutions pour l’optimisation de l’infrastructure des établissements scolairesSolutions pour l’optimisation de l’infrastructure des établissements scolaires
Solutions pour l’optimisation de l’infrastructure des établissements scolaires
Microsoft Technet France
 
Android un nouveau futur s'ouvre à nous
Android un nouveau futur s'ouvre à nousAndroid un nouveau futur s'ouvre à nous
Android un nouveau futur s'ouvre à nous
Mathias Seguy
 
De A à Z: Utiliser PivotViewer dans une application orientée données
De A à Z: Utiliser PivotViewer dans une application orientée donnéesDe A à Z: Utiliser PivotViewer dans une application orientée données
De A à Z: Utiliser PivotViewer dans une application orientée données
Microsoft
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
Sabeur LAJILI
 
Livre blanc Windows Azure et les éditeurs de logiciel
Livre blanc Windows Azure et les éditeurs de logicielLivre blanc Windows Azure et les éditeurs de logiciel
Livre blanc Windows Azure et les éditeurs de logicielMicrosoft Décideurs IT
 
Soft fluent@md day2011
Soft fluent@md day2011Soft fluent@md day2011
Soft fluent@md day2011MDDAY11
 
Introduction a Android
Introduction a AndroidIntroduction a Android
Introduction a Android
Mohamed-Wassim Youssef
 
Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A09Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A09
Claude Coulombe
 
Blend 4 pour les designers (et pour les développeurs)
Blend 4 pour les designers (et pour les développeurs)Blend 4 pour les designers (et pour les développeurs)
Blend 4 pour les designers (et pour les développeurs)
Microsoft
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
jeromevdl
 

Tendances (16)

Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
Applications métiers et/ou d'entreprise sur Windows Phone 7 - bonnes pratique...
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALM
 
WPF 4.5 : Quoi de neuf pour les développeurs ?
WPF 4.5 : Quoi de neuf pour les développeurs ?WPF 4.5 : Quoi de neuf pour les développeurs ?
WPF 4.5 : Quoi de neuf pour les développeurs ?
 
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et SilverlightDéveloppement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
Développement de jeux pour Windows Phone 7.5 avec XNA et Silverlight
 
Introduction à Samsung bada
Introduction à Samsung badaIntroduction à Samsung bada
Introduction à Samsung bada
 
Solutions pour l’optimisation de l’infrastructure des établissements scolaires
Solutions pour l’optimisation de l’infrastructure des établissements scolairesSolutions pour l’optimisation de l’infrastructure des établissements scolaires
Solutions pour l’optimisation de l’infrastructure des établissements scolaires
 
Android un nouveau futur s'ouvre à nous
Android un nouveau futur s'ouvre à nousAndroid un nouveau futur s'ouvre à nous
Android un nouveau futur s'ouvre à nous
 
De A à Z: Utiliser PivotViewer dans une application orientée données
De A à Z: Utiliser PivotViewer dans une application orientée donnéesDe A à Z: Utiliser PivotViewer dans une application orientée données
De A à Z: Utiliser PivotViewer dans une application orientée données
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Livre blanc Windows Azure et les éditeurs de logiciel
Livre blanc Windows Azure et les éditeurs de logicielLivre blanc Windows Azure et les éditeurs de logiciel
Livre blanc Windows Azure et les éditeurs de logiciel
 
Soft fluent@md day2011
Soft fluent@md day2011Soft fluent@md day2011
Soft fluent@md day2011
 
Cours Android
Cours AndroidCours Android
Cours Android
 
Introduction a Android
Introduction a AndroidIntroduction a Android
Introduction a Android
 
Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A09Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A09
 
Blend 4 pour les designers (et pour les développeurs)
Blend 4 pour les designers (et pour les développeurs)Blend 4 pour les designers (et pour les développeurs)
Blend 4 pour les designers (et pour les développeurs)
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
 

En vedette

La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nuls
Microsoft
 
Le déclin-de-lempire-masculin
Le déclin-de-lempire-masculinLe déclin-de-lempire-masculin
Le déclin-de-lempire-masculin
France Télévisions Midi-Pyrénées
 
Introduction to WPF
Introduction to WPFIntroduction to WPF
Introduction to WPF
Munish Arora
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Microsoft
 
Le binding en wpf
Le binding en wpfLe binding en wpf
Le binding en wpf
Chinouchi
 
Introducthion mvvm avec wpf
Introducthion mvvm avec wpfIntroducthion mvvm avec wpf
Introducthion mvvm avec wpf
Atmane EL BOUACHRI
 
Blend 2015, un nouveau look et de nouvelles fonctionnalités pour les développ...
Blend 2015, un nouveau look et de nouvelles fonctionnalités pour les développ...Blend 2015, un nouveau look et de nouvelles fonctionnalités pour les développ...
Blend 2015, un nouveau look et de nouvelles fonctionnalités pour les développ...
Microsoft
 
Wygday2010 - silverlight 4 & wpf 4
Wygday2010 -  silverlight 4 & wpf 4Wygday2010 -  silverlight 4 & wpf 4
Wygday2010 - silverlight 4 & wpf 4
Wygwam
 

En vedette (8)

La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nuls
 
Le déclin-de-lempire-masculin
Le déclin-de-lempire-masculinLe déclin-de-lempire-masculin
Le déclin-de-lempire-masculin
 
Introduction to WPF
Introduction to WPFIntroduction to WPF
Introduction to WPF
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
 
Le binding en wpf
Le binding en wpfLe binding en wpf
Le binding en wpf
 
Introducthion mvvm avec wpf
Introducthion mvvm avec wpfIntroducthion mvvm avec wpf
Introducthion mvvm avec wpf
 
Blend 2015, un nouveau look et de nouvelles fonctionnalités pour les développ...
Blend 2015, un nouveau look et de nouvelles fonctionnalités pour les développ...Blend 2015, un nouveau look et de nouvelles fonctionnalités pour les développ...
Blend 2015, un nouveau look et de nouvelles fonctionnalités pour les développ...
 
Wygday2010 - silverlight 4 & wpf 4
Wygday2010 -  silverlight 4 & wpf 4Wygday2010 -  silverlight 4 & wpf 4
Wygday2010 - silverlight 4 & wpf 4
 

Similaire à Analyse et optimisation des performances des applications Windows Phone 7.5

Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
Microsoft
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
Microsoft
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
Microsoft
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
Microsoft
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
benjguin
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
stefounet
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
Microsoft
 
Live Mesh Tech Days Suisse
Live Mesh Tech Days SuisseLive Mesh Tech Days Suisse
Live Mesh Tech Days SuisseGregory Renard
 
Architecture .net
Architecture  .netArchitecture  .net
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
Thierry Buisson
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
davrous
 
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
Microsoft
 
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataDe A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
Microsoft
 
Webschool bourges "le monde de google"
Webschool bourges "le monde de google"Webschool bourges "le monde de google"
Webschool bourges "le monde de google"Webschool Bourges
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNuke
Microsoft
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012
Cyril P
 
La réalité augmentée dans les systèmes embarqués
La réalité augmentée dans les systèmes embarquésLa réalité augmentée dans les systèmes embarqués
La réalité augmentée dans les systèmes embarqués
Microsoft Décideurs IT
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 Minutes
Microsoft
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobileEutech SSII
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJS
Microsoft
 

Similaire à Analyse et optimisation des performances des applications Windows Phone 7.5 (20)

Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
Live Mesh Tech Days Suisse
Live Mesh Tech Days SuisseLive Mesh Tech Days Suisse
Live Mesh Tech Days Suisse
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
 
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataDe A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
 
Webschool bourges "le monde de google"
Webschool bourges "le monde de google"Webschool bourges "le monde de google"
Webschool bourges "le monde de google"
 
Introduction à DotNetNuke
Introduction à DotNetNukeIntroduction à DotNetNuke
Introduction à DotNetNuke
 
DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012DotNetNuke aux TechDays 2012
DotNetNuke aux TechDays 2012
 
La réalité augmentée dans les systèmes embarqués
La réalité augmentée dans les systèmes embarquésLa réalité augmentée dans les systèmes embarqués
La réalité augmentée dans les systèmes embarqués
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 Minutes
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobile
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJS
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
Microsoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
Microsoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
Microsoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
Microsoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Microsoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
Microsoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
Microsoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
Microsoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Analyse et optimisation des performances des applications Windows Phone 7.5

  • 1. palais des congrès Paris 7, 8 et 9 février 2012
  • 2. Analyse et optimisation des performances des applications Windows Phone 7 février 2012 Charlotte Gaidon & Jérémy Alles THALES Services Grenoble
  • 3. Présentation Charlotte Gaidon  Formatrice WPF / SL charlotte.gaidon@gmail.com @nutchad Jérémy Alles  MVP Client App Dev / WPF Disciples jeremy.alles@gmail.com @jalpf www.japf.fr THALES  Cœur de métier : applications industrielles  Agence de 200 collaborateurs à Grenoble  Pôle d’expertise sur les technologies Microsoft
  • 4.
  • 5. Vous voulez développer une appli Windows Phone ? Inscrivez-vous ! Profitez d’un programme d’accompagnement pour développeurs, à la carte et sans engagement – Un guide vous contacte et vous accompagne personnellement – Il met à votre disposition des ressources : accès gratuits* Marketplace, prêts/dons* de téléphone… – Il vous propose du coaching technique et design – Il vous aide à rendre visible votre application en ligne et à des événements *Dans la limite des quantités disponibles
  • 6. La certification… 5 20 90 s Temps de démarrage Temps de réactivité s Mémoire max Mo bit.ly/techdays12_certif
  • 7. Agenda Application de test Device vs Emulateur Nos amis les threads Outils  Compteurs de performance  Profiler de Visual Studio Bonnes pratiques  BitmapCache & Compositor  Visibility vs Opacity  Médias  Perception & Réalité Conclusion
  • 10. Emulateur vs Device Emulateur Lumia 800 Omnia 7 10.2 9.4 7.2 7.3 4,2 6.4 6.3 3.1 1.6 Lancement Sauvegarde Affichage
  • 11. Nos amis les threads
  • 12. Silverlight input rasterize binding animations layout OS interop User Interface Thread dispatch networking parsing dispatch Background Thread
  • 13. Windows Phone 7.0 7.5 Mango Touch Thread primitive animations composite onto back buffer Compositor Thread touch rasterize binding animations layout OS interop User Interface Thread dispatch networking parsing dispatch Background Thread
  • 15. Compteurs de performance Composition thread frame rate 30 45 60 UI thread frame rate 15 30 60 Texture memory usage Mémoire vidéo utilisée pour les textures Surface counter Surfaces passées au GPU Surfaces intermédiaires Intermediate surface counter créées pour la composition Screen fill rate counter 0 2 3
  • 17. DEMO Suivi consommation mémoire en temps- réel bit.ly/techdays12_memoire
  • 18. Profiler de Visual Studio 2010 Nouvel outil apporté par Mango Entièrement intégré à Visual Studio Cibles public void DoWork() {  Frame rate for (int i = 0; i < 100; i++) exclusive inclusive  CPU { // calcul...  Mémoire }  Médias var result = ComputeResult();  GC }
  • 19. DEMO Analyse de la mémoire avec le profiler
  • 20. Bilan profiler mémoire Penser à se désabonner des events Attention aux délégués anonymes Le GC bloque le thread UI
  • 21. DEMO Analyse de la performance avec le profiler
  • 22. Bilan profiler (1) Arbre Visuel  Avant : total = 29 / profondeur = 8  Après : total = 16 / profondeur = 4
  • 23. Bilan profiler (2) Binding & Visibility Ne pas surcharger le thread graphique
  • 25. BitmapCache / Compositor Contrôle «PivotIndicator » 1 rectangle dont on anime la position
  • 27. Cacher par opacité ? Visibility (Collapsed  Visible)  compromis temps / mémoire Opacity (0  1)  à combiner avec BitmapCache bit.ly/techdays12_hiding
  • 29. Bien gérer les images Format : jpg ou png ? Bonne résolution ! XAML vs image…  CreateOptions="BackgroundCreation"  BuildAction = Content
  • 31. Performance & Perception Toujours montrer de l’activité à l’utilisateur  (Performance)ProgressBar  SplashScreen animé  Tilt effect  Transition entre les pages  …
  • 32. Mais aussi… (1) Limiter la taille des assemblies Créer les visuels quand on a besoin  Virtualisation UI Optimiser vos données  Virtualisation DATA bit.ly/techdays12_LLS Optimisation LongListSelector Vidéo funbit.ly/techdays12_smokebyWP
  • 33. Et encore… (2) On adore C# Async 
  • 35. Conclusion Tester sur un device en conditions réelles Utiliser les outils et les spécificités de la plateforme « Less is more » Merci  Pierre Cauchois (Microsoft)  Jeff Wilcox (Microsoft)  Rahim Zaknoun (Nokia)
  • 36. Pour aller plus loin Prochaines sessions des Dev Camps Chaque semaine, les 10 Live Open Data - Développer des applications riches avec le février DevCamps 2012 16 Meeting protocole Open Data ALM, Azure, Windows Phone, HTML5, OpenData février Live Meeting Azure series - Développer des applications sociales sur la plateforme Windows Azure 2012 http://msdn.microsoft.com/fr-fr/devcamp 17 Live Comprendre le canvas avec Galactic et la librairie février Meeting three.js 2012 Téléchargement, ressources 21 février Live La production automatisée de code avec CodeFluent Meeting Entities et toolkits : RdV sur MSDN 2012 2 mars Live Comprendre et mettre en oeuvre le toolkit Azure pour http://msdn.microsoft.com/fr-fr/ 2012 Meeting Windows Phone 7, iOS et Android 6 mars Live Nuget et ALM 2012 Meeting Les offres à connaître 9 mars 2012 Live Meeting Kinect - Bien gérer la vie de son capteur 90 jours d’essai gratuit de Windows 13 mars 2012 Live Meeting Sharepoint series - Automatisation des tests Azure 14 mars Live TFS Health Check - vérifier la bonne santé de votre www.windowsazure.fr 2012 Meeting plateforme de développement 15 mars Live Azure series - Développer pour les téléphones, les 2012 Meeting tablettes et le cloud avec Visual Studio 2010 Jusqu’à 35% de réduction sur Visual 16 mars Live Applications METRO design - Désossage en règle d'un Studio Pro, avec l’abonnement MSDN 2012 Meeting template METRO javascript 20 mars Live Retour d'expérience LightSwitch, Optimisation de www.visualstudio.fr 2012 Meeting l'accès aux données, Intégration Silverlight 23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans 2012 Meeting votre application
  • 37. Merci ! Questions ? Charlotte Gaidon charlotte.gaidon@gmail.com @nutchad Jérémy Alles jeremy.alles@gmail.com @jalpf www.japf.fr Bientôt disponible : www.2day-wp7.fr