optimisation des applications windows 8/html5/winjs

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

Upload: microsoft-developpeurs

Post on 28-Dec-2014

274 views

Category:

Documents


2 download

DESCRIPTION

Dans cette session, vous découvrirez comment analyser et résoudre les problèmes de performance de vos applications Windows 8 développées en HTML 5 / JavaScript, en utilisant les outils de profiling mis à disposition dans Visual Studio. Vous découvrez ainsi comment rendre vos applications « Fast & Fluid » pour le plaisir de vos utilisateurs.

TRANSCRIPT

Page 1: Optimisation des applications Windows 8/HTML5/WinJS

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

Page 2: Optimisation des applications Windows 8/HTML5/WinJS

Optimisation des applications Windows 8 /

HTML 5 / WinJSThomas LEBRUN / Jonathan ANTOINE

[email protected] / [email protected]

Infinite Square

Code / Développement

#APP402

Page 3: Optimisation des applications Windows 8/HTML5/WinJS

INFINITE SQUARE STAND 44 ESPACE WINDOWS 8 & EXPÉRIENCES NUMÉRIQUES

GOLD Certified Partnersur 4 domaines de compétences.

Agréé CIR.

Centre de formation agréé.

Infinite Square aux TechDays 2013

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.

Page 4: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

• Rappels de bonnes pratiques• JavaScript & Profiling• Analyse de performances• Détection de fuites mémoire• Optimisation de la ListView• Conclusions

Agenda

Page 5: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

• 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

Rappels de bonnes pratiques

Page 6: Optimisation des applications Windows 8/HTML5/WinJS

• 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

Rappels de bonnes pratiques (2)

Page 7: Optimisation des applications Windows 8/HTML5/WinJS

demoAU TRAVAIL LES TRAVAILLEURS !

Code / Développement

Page 8: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

• 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

JavaScript & Profiling

Page 9: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

function Alpha(){

Beta();}function Beta(){

}

JavaScript & Profiling (2)

30 ms

50 ms

50 50

30 80

Page 10: Optimisation des applications Windows 8/HTML5/WinJS

demoTROP D’APPELS TUENT L’APPEL

Code / Développement

Page 11: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

• Performance Analyzer– Installé avec Visual Studio ou le SDK Windows 8– Génère un rapport mesurant 13 points de performances

Analyse 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

Page 12: Optimisation des applications Windows 8/HTML5/WinJS

demoQU’EST-CE-QUI VA PAS ?

Code / Développement

Page 13: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

• 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

Détection de fuites mémoire

Page 14: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

• 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)

Détection de fuites mémoire (2)

Page 15: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

• 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

Détection de fuites mémoire (3)

Page 16: Optimisation des applications Windows 8/HTML5/WinJS

demoA BAS LES « MEMORY LEAKS » !

Code / Développement

Page 17: Optimisation des applications Windows 8/HTML5/WinJS

demoOPTIMISATION DE LA LISTVIEW

Une ListView peut contenir des

Page 18: Optimisation des applications Windows 8/HTML5/WinJS

Code / Développement

• 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

Conclusions

Page 19: Optimisation des applications Windows 8/HTML5/WinJS

Merci !Code / Développement

Page 20: Optimisation des applications Windows 8/HTML5/WinJS

Formez-vous en ligne

Retrouvez nos évènements

Faites-vous accompagner gratuitement

Essayer gratuitement nos solutions IT

Retrouver nos experts Microsoft

Pros de l’ITDéveloppeurs

www.microsoftvirtualacademy.com

http://aka.ms/generation-app

http://aka.ms/evenements-developpeurs

http://aka.ms/itcamps-france

Les accélérateursWindows Azure, Windows Phone,

Windows 8

http://aka.ms/telechargements

La Dev’Team sur MSDNhttp://aka.ms/devteam

L’IT Team sur TechNethttp://aka.ms/itteam

Code / Développement