SlideShare une entreprise Scribd logo
1  sur  20
Donnez votre avis !
                   Depuis votre smartphone, sur :
                    http://notes.mstechdays.fr

    De nombreux lots à gagner toutes les heures !!!
               Claviers, souris et jeux Microsoft…

       Merci de nous aider à améliorer les TechDays

http://notes.mstechdays.fr
Optimisation des
         applications Windows 8 /
                   HTML 5 / WinJS
           Thomas LEBRUN / Jonathan ANTOINE
                                             Consultants
    tlebrun@infinitesquare.com / jantoine@infinitesquare.com
                                          Infinite Square
                                                   #APP402



Code / Développement
INFINITE SQUARE
  STAND 44 ESPACE WINDOWS 8 & EXPÉRIENCES NUMÉRIQUES

   Société de conseil, d’expertise, de réalisation et de formation exclusivement sur les technologies
    de développement d’applications et la plateforme applicative Microsoft.

   30 collaborateurs spécialisés sur les techno MS, dont 10 MVP.




   GOLD Certified Partner
    sur 4 domaines de compétences.
   Agréé CIR.
   Centre de formation agréé.
Infinite Square aux TechDays 2013
Agenda
     •   Rappels de bonnes pratiques
     •   JavaScript & Profiling
     •   Analyse de performances
     •   Détection de fuites mémoire
     •   Optimisation de la ListView
     •   Conclusions
Code / Développement
Rappels de bonnes pratiques
     • Ne pas bloquer le thread UI !
          – Phénomène de « freeze »
          – Pas de délai de plus de 100ms


     • Analyser fréquemment la mémoire de votre
       application
          – Permet des optimisations régulières de code

Code / Développement
Rappels de bonnes pratiques (2)
• Pas de traitements asynchrones en
  JavaScript
• Utiliser des Web Worker !
  – 1 worker = 1 thread Windows
• Communication via chaîne de caractères ou
  objet JSON
AU TRAVAIL LES TRAVAILLEURS
        !
Code / Développement
JavaScript & Profiling
     • Visual Studio JavaScript Profiler
          – Enregistre le temps d’exécution de chaque méthodes
          – Enregistre le nombre exact d’appels de chaque
            méthodes
     • De quoi parle-t-on ?
          – Exclusive Time: Temps d’exécution de la méthode sans
            ses enfants
          – Inclusive Time: Temps d’exécution de la méthode avec
            ses enfants
Code / Développement
JavaScript & Profiling (2)
     function Alpha()
     {
                       30 ms


           Beta();
     }
     function Beta()
     {
                       50 ms
     }

Code / Développement
TROP D’APPELS TUENT
        L’APPEL
Code / Développement
Analyse de performances
     • Performance Analyzer
          – Installé avec Visual Studio ou le SDK Windows 8
          – Génère un rapport mesurant 13 points de performances
         Activation Time                       Memory leaks

         UI responsiveness                     Idle State CPU usage

         Layout passes                         Successful suspend

         Synchronous XHR on UI thread          Memory reduction when suspended

         Image scaling                         App memory growth

         Memory footprint                      Runtime broker memory growth

         Runtime broker memory reference set

Code / Développement
QU’EST-CE-QUI VA PAS ?

Code / Développement
Détection de fuites mémoire
     • JavaScript Memory Profiler
     • Identification de la mémoire
       involontairement retenue
          – Utilisation de « Snapshots »
     • Affiche le nombre et la taille
          – D’éléments DOM
          – D’objets JavaScript

Code / Développement
Détection de fuites mémoire (2)
     • De quoi parle-t-on (encore ?!):
          – Size: Taille de l’objet en mémoire
          – Retained Size: Quantité de mémoire qui pourrait être
            collectée par le Garbage Collector (GC) si toutes les
            références sur l’objet sont supprimées:
             • Inclut la taille de l’objet
             • Inclut la taille de tous les objets référencés (et leurs
               références)

Code / Développement
Détection de fuites mémoire (3)
     • Possibilité de prendre des « snapshots » par
       programmation:
          – Idéal pour capturer un moment précis
     •    console.takeHeapSnapshot

          – Capture un « snapshot » et l’affichage dans le profiler
     •    console.profileMark

          – Affiche un marqueur dans le profiler

Code / Développement
A BAS LES « MEMORY LEAKS » !

Code / Développement
OPTIMISATION DE LA LISTVIEW

Une ListView peut contenir des
Conclusions
     • Installer l’Update 1 de Visual Studio 2012
          – Vous profiterez de tous les outils d’analyse de
            performances
     • Ne sous-estimer pas l’importance de ces
       outils
          – Ils vous permettront d’identifier des bugs « vicieux »
            (cas rencontré récemment )
          – Utiliser les régulièrement sur votre application
Code / Développement
Code / Développement
Développeurs                                                         Pros de l’IT
 http://aka.ms/generation-app        Formez-vous en ligne        www.microsoftvirtualacademy.com

     http://aka.ms/evenements-
                  developpeurs     Retrouvez nos évènements      http://aka.ms/itcamps-france


            Les accélérateurs
                                   Faites-vous accompagner
Windows Azure, Windows Phone,
                                   gratuitement
                   Windows 8


                                    Essayer gratuitement nos     http://aka.ms/telechargements
                                                  solutions IT

          La Dev’Team sur MSDN       Retrouver nos experts       L’IT Team sur TechNet
           http://aka.ms/devteam           Microsoft             http://aka.ms/itteam

Code / Développement

Contenu connexe

Tendances

Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Microsoft
 
Introduction au développement Windows 8 avec XAML et .NET 4.5
Introduction au développement Windows 8 avec XAML et .NET 4.5Introduction au développement Windows 8 avec XAML et .NET 4.5
Introduction au développement Windows 8 avec XAML et .NET 4.5Microsoft
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Microsoft
 
Windows Azure Camp du mardi 10 décembre 2013
Windows Azure Camp du mardi 10 décembre 2013Windows Azure Camp du mardi 10 décembre 2013
Windows Azure Camp du mardi 10 décembre 2013Microsoft Technet France
 
Visual Studio 2012 pour Windows 8
Visual Studio 2012 pour Windows 8Visual Studio 2012 pour Windows 8
Visual Studio 2012 pour Windows 8Microsoft
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Microsoft
 
Conception d’une application pour Windows 8 avec Blend 5
Conception d’une application pour Windows 8 avec Blend 5Conception d’une application pour Windows 8 avec Blend 5
Conception d’une application pour Windows 8 avec Blend 5Microsoft
 
Outillage pour Windows 8 XAML
Outillage pour Windows 8 XAMLOutillage pour Windows 8 XAML
Outillage pour Windows 8 XAMLMicrosoft
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...vlabatut
 
Préparer et distribuer une application moderne d'entreprise
Préparer et distribuer une application moderne d'entreprisePréparer et distribuer une application moderne d'entreprise
Préparer et distribuer une application moderne d'entrepriseMicrosoft
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Microsoft
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologiewyggio
 
Techdays 2012 - Développement Web Mobile avec Microsoft
Techdays 2012 - Développement Web Mobile avec MicrosoftTechdays 2012 - Développement Web Mobile avec Microsoft
Techdays 2012 - Développement Web Mobile avec Microsoftwyggio
 
Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5wyggio
 
La validation UX du Store : Tout ce que vous avez toujours voulu savoir sans...
La validation UX du Store :  Tout ce que vous avez toujours voulu savoir sans...La validation UX du Store :  Tout ce que vous avez toujours voulu savoir sans...
La validation UX du Store : Tout ce que vous avez toujours voulu savoir sans...Microsoft
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Microsoft
 
CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeadsRNS
 
Comment intégrer votre Surface Pro 3 dans votre réseau d’entreprise ?
Comment intégrer votre Surface Pro 3 dans votre réseau d’entreprise ?Comment intégrer votre Surface Pro 3 dans votre réseau d’entreprise ?
Comment intégrer votre Surface Pro 3 dans votre réseau d’entreprise ?Microsoft Décideurs IT
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Microsoft
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System SARL
 

Tendances (20)

Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Booster votre application Windows Phone 8
Booster votre application Windows Phone 8
 
Introduction au développement Windows 8 avec XAML et .NET 4.5
Introduction au développement Windows 8 avec XAML et .NET 4.5Introduction au développement Windows 8 avec XAML et .NET 4.5
Introduction au développement Windows 8 avec XAML et .NET 4.5
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5
 
Windows Azure Camp du mardi 10 décembre 2013
Windows Azure Camp du mardi 10 décembre 2013Windows Azure Camp du mardi 10 décembre 2013
Windows Azure Camp du mardi 10 décembre 2013
 
Visual Studio 2012 pour Windows 8
Visual Studio 2012 pour Windows 8Visual Studio 2012 pour Windows 8
Visual Studio 2012 pour Windows 8
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices
 
Conception d’une application pour Windows 8 avec Blend 5
Conception d’une application pour Windows 8 avec Blend 5Conception d’une application pour Windows 8 avec Blend 5
Conception d’une application pour Windows 8 avec Blend 5
 
Outillage pour Windows 8 XAML
Outillage pour Windows 8 XAMLOutillage pour Windows 8 XAML
Outillage pour Windows 8 XAML
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
 
Préparer et distribuer une application moderne d'entreprise
Préparer et distribuer une application moderne d'entreprisePréparer et distribuer une application moderne d'entreprise
Préparer et distribuer une application moderne d'entreprise
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologie
 
Techdays 2012 - Développement Web Mobile avec Microsoft
Techdays 2012 - Développement Web Mobile avec MicrosoftTechdays 2012 - Développement Web Mobile avec Microsoft
Techdays 2012 - Développement Web Mobile avec Microsoft
 
Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5Wygday 2011 - Introduction à HTML5
Wygday 2011 - Introduction à HTML5
 
La validation UX du Store : Tout ce que vous avez toujours voulu savoir sans...
La validation UX du Store :  Tout ce que vous avez toujours voulu savoir sans...La validation UX du Store :  Tout ce que vous avez toujours voulu savoir sans...
La validation UX du Store : Tout ce que vous avez toujours voulu savoir sans...
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11
 
CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & Android
 
Comment intégrer votre Surface Pro 3 dans votre réseau d’entreprise ?
Comment intégrer votre Surface Pro 3 dans votre réseau d’entreprise ?Comment intégrer votre Surface Pro 3 dans votre réseau d’entreprise ?
Comment intégrer votre Surface Pro 3 dans votre réseau d’entreprise ?
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stack
 

Similaire à Optimisation des applications Windows 8/HTML5/WinJS

Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptdavrous
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptMicrosoft
 
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 8davrous
 
App211 techdays 2013 Windows 8 concevoir des applications efficaces et perfor...
App211 techdays 2013 Windows 8 concevoir des applications efficaces et perfor...App211 techdays 2013 Windows 8 concevoir des applications efficaces et perfor...
App211 techdays 2013 Windows 8 concevoir des applications efficaces et perfor...Guillaume Brout
 
Introduction au développement Windows 8.1
Introduction au développement Windows 8.1Introduction au développement Windows 8.1
Introduction au développement Windows 8.1Microsoft
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Hadina RIMTIC
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...Microsoft
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5davrous
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 MinutesMicrosoft
 
La Meta-programmation
La Meta-programmation La Meta-programmation
La Meta-programmation Microsoft
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Kit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursKit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursStéphanie Hertrich
 
Le modèle de sécurité des Windows Apps
Le modèle de sécurité des Windows AppsLe modèle de sécurité des Windows Apps
Le modèle de sécurité des Windows AppsMicrosoft
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Philippe Beraud
 
TechDays - Développer une single page application HTML5 - Version courte
TechDays - Développer une single page application HTML5 - Version courteTechDays - Développer une single page application HTML5 - Version courte
TechDays - Développer une single page application HTML5 - Version courteTouchify
 
TechDays - Développer une single page application HTML5 - Version longue
TechDays - Développer une single page application HTML5 - Version longueTechDays - Développer une single page application HTML5 - Version longue
TechDays - Développer une single page application HTML5 - Version longueTouchify
 
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...Microsoft
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciellauraty3204
 

Similaire à Optimisation des applications Windows 8/HTML5/WinJS (20)

Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascript
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
 
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
 
App211 techdays 2013 Windows 8 concevoir des applications efficaces et perfor...
App211 techdays 2013 Windows 8 concevoir des applications efficaces et perfor...App211 techdays 2013 Windows 8 concevoir des applications efficaces et perfor...
App211 techdays 2013 Windows 8 concevoir des applications efficaces et perfor...
 
Introduction au développement Windows 8.1
Introduction au développement Windows 8.1Introduction au développement Windows 8.1
Introduction au développement Windows 8.1
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 Minutes
 
La Meta-programmation
La Meta-programmation La Meta-programmation
La Meta-programmation
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Kit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des EntrepreneursKit De Survie Techno et Web à l'usage des Entrepreneurs
Kit De Survie Techno et Web à l'usage des Entrepreneurs
 
Le modèle de sécurité des Windows Apps
Le modèle de sécurité des Windows AppsLe modèle de sécurité des Windows Apps
Le modèle de sécurité des Windows Apps
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
 
Formation mobile-cross-platform
Formation mobile-cross-platformFormation mobile-cross-platform
Formation mobile-cross-platform
 
TechDays - Développer une single page application HTML5 - Version courte
TechDays - Développer une single page application HTML5 - Version courteTechDays - Développer une single page application HTML5 - Version courte
TechDays - Développer une single page application HTML5 - Version courte
 
TechDays - Développer une single page application HTML5 - Version longue
TechDays - Développer une single page application HTML5 - Version longueTechDays - Développer une single page application HTML5 - Version longue
TechDays - Développer une single page application HTML5 - Version longue
 
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel
 

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 milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
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 mobileMicrosoft
 
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 à ZMicrosoft
 
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 2016Microsoft
 
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 AnalyticsMicrosoft
 
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 RecoveryMicrosoft
 
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 CoreMicrosoft
 
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éveloppeursMicrosoft
 

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
 

Optimisation des applications Windows 8/HTML5/WinJS

  • 1. Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr
  • 2. Optimisation des applications Windows 8 / HTML 5 / WinJS Thomas LEBRUN / Jonathan ANTOINE Consultants tlebrun@infinitesquare.com / jantoine@infinitesquare.com Infinite Square #APP402 Code / Développement
  • 3. INFINITE SQUARE STAND 44 ESPACE WINDOWS 8 & EXPÉRIENCES NUMÉRIQUES  Société de conseil, d’expertise, de réalisation et de formation exclusivement sur les technologies de développement d’applications et la plateforme applicative Microsoft.  30 collaborateurs spécialisés sur les techno MS, dont 10 MVP.  GOLD Certified Partner sur 4 domaines de compétences.  Agréé CIR.  Centre de formation agréé. Infinite Square aux TechDays 2013
  • 4. Agenda • Rappels de bonnes pratiques • JavaScript & Profiling • Analyse de performances • Détection de fuites mémoire • Optimisation de la ListView • Conclusions Code / Développement
  • 5. Rappels de bonnes pratiques • Ne pas bloquer le thread UI ! – Phénomène de « freeze » – Pas de délai de plus de 100ms • Analyser fréquemment la mémoire de votre application – Permet des optimisations régulières de code Code / Développement
  • 6. Rappels de bonnes pratiques (2) • Pas de traitements asynchrones en JavaScript • Utiliser des Web Worker ! – 1 worker = 1 thread Windows • Communication via chaîne de caractères ou objet JSON
  • 7. AU TRAVAIL LES TRAVAILLEURS ! Code / Développement
  • 8. JavaScript & Profiling • Visual Studio JavaScript Profiler – Enregistre le temps d’exécution de chaque méthodes – Enregistre le nombre exact d’appels de chaque méthodes • De quoi parle-t-on ? – Exclusive Time: Temps d’exécution de la méthode sans ses enfants – Inclusive Time: Temps d’exécution de la méthode avec ses enfants Code / Développement
  • 9. JavaScript & Profiling (2) function Alpha() { 30 ms Beta(); } function Beta() { 50 ms } Code / Développement
  • 10. TROP D’APPELS TUENT L’APPEL Code / Développement
  • 11. Analyse de performances • Performance Analyzer – Installé avec Visual Studio ou le SDK Windows 8 – Génère un rapport mesurant 13 points de performances Activation Time Memory leaks UI responsiveness Idle State CPU usage Layout passes Successful suspend Synchronous XHR on UI thread Memory reduction when suspended Image scaling App memory growth Memory footprint Runtime broker memory growth Runtime broker memory reference set Code / Développement
  • 12. QU’EST-CE-QUI VA PAS ? Code / Développement
  • 13. Détection de fuites mémoire • JavaScript Memory Profiler • Identification de la mémoire involontairement retenue – Utilisation de « Snapshots » • Affiche le nombre et la taille – D’éléments DOM – D’objets JavaScript Code / Développement
  • 14. Détection de fuites mémoire (2) • De quoi parle-t-on (encore ?!): – Size: Taille de l’objet en mémoire – Retained Size: Quantité de mémoire qui pourrait être collectée par le Garbage Collector (GC) si toutes les références sur l’objet sont supprimées: • Inclut la taille de l’objet • Inclut la taille de tous les objets référencés (et leurs références) Code / Développement
  • 15. Détection de fuites mémoire (3) • Possibilité de prendre des « snapshots » par programmation: – Idéal pour capturer un moment précis • console.takeHeapSnapshot – Capture un « snapshot » et l’affichage dans le profiler • console.profileMark – Affiche un marqueur dans le profiler Code / Développement
  • 16. A BAS LES « MEMORY LEAKS » ! Code / Développement
  • 17. OPTIMISATION DE LA LISTVIEW Une ListView peut contenir des
  • 18. Conclusions • Installer l’Update 1 de Visual Studio 2012 – Vous profiterez de tous les outils d’analyse de performances • Ne sous-estimer pas l’importance de ces outils – Ils vous permettront d’identifier des bugs « vicieux » (cas rencontré récemment ) – Utiliser les régulièrement sur votre application Code / Développement
  • 20. Développeurs Pros de l’IT http://aka.ms/generation-app Formez-vous en ligne www.microsoftvirtualacademy.com http://aka.ms/evenements- developpeurs Retrouvez nos évènements http://aka.ms/itcamps-france Les accélérateurs Faites-vous accompagner Windows Azure, Windows Phone, gratuitement Windows 8 Essayer gratuitement nos http://aka.ms/telechargements solutions IT La Dev’Team sur MSDN Retrouver nos experts L’IT Team sur TechNet http://aka.ms/devteam Microsoft http://aka.ms/itteam Code / Développement

Notes de l'éditeur

  1. Notation
  2. Intro code / dev
  3. C:\\Program Files (x86)\\Windows Kits\\8.0\\bin\\{Plateform}\\AppPerfAnalyzer\\appperfanalyzer_js.exe
  4. C:\\Program Files (x86)\\Windows Kits\\8.0\\bin\\{Plateform}\\AppPerfAnalyzer\\appperfanalyzer_js.exe