37
palais des congrès Paris 7, 8 et 9 février 2012

Analyse et optimisation des performances des applications Windows Phone 7.5

Embed Size (px)

DESCRIPTION

Dans cette sessions nous aborderons les points clés pour la conception et la réalisation d'une application Windows Phone performante et réactive. Nous verrons comment optimiser votre code pour garantir une exécution optimale que ce soit au niveau de la mémoire que de la vitesse d'exécution. Nous en profiterons pour partager nos trucs & astuces de développement, comme par exemple la création d'un contrôle pour tracer l'utilisation mémoire, ou encore l'utilisation du profiler de VS2010 A propos des speakers : • Jérémy Alles : MVP Client App Dev, blogueur (www.japf.fr), rédacteur pour le magazine Programmez!, intervenant AskTheExpert, voyageur (MVPSummit 2011, //BUILD 2011), expert WPF/Silverlight/WindowsPhone/Windows8 • Charlotte Chavancy : rédacteur pour le magazine Programmez!, expert et formatrice WPF/Silverlight/WindowsPhone/Windows8

Citation preview

Page 1: Analyse et optimisation des performances des applications Windows Phone 7.5

palais des

congrès

Paris

7, 8 et 9

février 2012

Page 2: Analyse et optimisation des performances des applications Windows Phone 7.5

7 février 2012

Charlotte Gaidon & Jérémy AllesTHALES Services Grenoble

Analyse et optimisation

des performances des

applications Windows

Phone

Page 3: Analyse et optimisation des performances des applications Windows Phone 7.5

Charlotte Gaidon

Formatrice WPF / SL

[email protected]

Jérémy Alles

MVP Client App Dev / WPF Disciples

[email protected]

@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

Présentation

@nutchad

Page 4: Analyse et optimisation des performances des applications Windows Phone 7.5
Page 5: Analyse et optimisation des performances des applications Windows Phone 7.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

Page 6: Analyse et optimisation des performances des applications Windows Phone 7.5

La certification…

5 20 90s

bit.ly/techdays12_certif

Temps de démarrage Temps de réactivité Mémoire max

s Mo

Page 7: Analyse et optimisation des performances des applications Windows Phone 7.5

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

Page 8: Analyse et optimisation des performances des applications Windows Phone 7.5

www.2day-wp7.com

Page 9: Analyse et optimisation des performances des applications Windows Phone 7.5

DEMO

Device vs Emulateur

Page 10: Analyse et optimisation des performances des applications Windows Phone 7.5

Emulateur vs Device

4,2

1.63.1

7.26.4 6.3

10.2

7.3

9.4

Lancement Sauvegarde Affichage

Emulateur Lumia 800 Omnia 7

Page 11: Analyse et optimisation des performances des applications Windows Phone 7.5

Nos amis les threads

Page 12: Analyse et optimisation des performances des applications Windows Phone 7.5

Silverlight

animationsinput

dispatch parsingnetworking dispatch

OS interoplayoutrasterize binding

Background Thread

User Interface Thread

Page 13: Analyse et optimisation des performances des applications Windows Phone 7.5

Windows Phone

User Interface Thread

Background Thread

Compositor Thread

dispatch parsingnetworking dispatch

rasterize binding

primitive animations

touch OS interoplayout

composite onto back buffer

7.07.5

Mango

Touch Thread

animations

Page 14: Analyse et optimisation des performances des applications Windows Phone 7.5

Outils

Page 15: Analyse et optimisation des performances des applications Windows Phone 7.5

Compteurs de performance

Surface counter

UI thread frame rate

Texture memory usage

Composition thread frame

rate

Screen fill rate counter

Intermediate surface counter

Mémoire vidéo utilisée

pour les textures

30 45 60

15 30 60

0 2 3

Surfaces passées au

GPUSurfaces intermédiaires

créées pour la

composition

Page 16: Analyse et optimisation des performances des applications Windows Phone 7.5

DEMO

Compteurs de performance

Page 17: Analyse et optimisation des performances des applications Windows Phone 7.5

DEMO

Suivi consommation mémoire en temps-

réel

bit.ly/techdays12_memoire

Page 18: Analyse et optimisation des performances des applications Windows Phone 7.5

Nouvel outil apporté par Mango

Entièrement intégré à Visual Studio

Cibles

Frame rate

CPU

Mémoire

Médias

GC

Profiler de Visual Studio 2010

public void DoWork() { for (int i = 0; i < 100; i++){ // calcul...

}

var result = ComputeResult(); }

incl

usi

ve

excl

usi

ve

Page 19: Analyse et optimisation des performances des applications Windows Phone 7.5

DEMO

Analyse de la mémoire avec le profiler

Page 20: Analyse et optimisation des performances des applications Windows Phone 7.5

Penser à se désabonner des events

Attention aux délégués anonymes

Le GC bloque le thread UI

Bilan profiler mémoire

Page 21: Analyse et optimisation des performances des applications Windows Phone 7.5

DEMO

Analyse de la performance avec le

profiler

Page 22: Analyse et optimisation des performances des applications Windows Phone 7.5

Arbre Visuel

Avant : total = 29 / profondeur = 8

Après : total = 16 / profondeur = 4

Bilan profiler (1)

Page 23: Analyse et optimisation des performances des applications Windows Phone 7.5

Binding & Visibility

Ne pas surcharger le thread graphique

Bilan profiler (2)

Page 24: Analyse et optimisation des performances des applications Windows Phone 7.5

Bonnes pratiques

Page 25: Analyse et optimisation des performances des applications Windows Phone 7.5

Contrôle «PivotIndicator »

1 rectangle dont on anime la position

BitmapCache / Compositor

Page 26: Analyse et optimisation des performances des applications Windows Phone 7.5

DEMO

BitmapCache + Compositor

Page 27: Analyse et optimisation des performances des applications Windows Phone 7.5

Visibility (Collapsed Visible)

compromis temps / mémoire

Opacity (0 1)

à combiner avec BitmapCache

Cacher par opacité ?

bit.ly/techdays12_hiding

Page 28: Analyse et optimisation des performances des applications Windows Phone 7.5

DEMO

Visibility vs Opacity

Page 29: Analyse et optimisation des performances des applications Windows Phone 7.5

Format : jpg ou png ?

Bonne résolution !

XAML vs image…

CreateOptions="BackgroundCreation"

BuildAction = Content

Bien gérer les images

Page 30: Analyse et optimisation des performances des applications Windows Phone 7.5

DEMO

« Please wait... »

Page 31: Analyse et optimisation des performances des applications Windows Phone 7.5

Toujours montrer de l’activité à l’utilisateur

(Performance)ProgressBar

SplashScreen animé

Tilt effect

Transition entre les pages

Performance & Perception

Page 32: Analyse et optimisation des performances des applications Windows Phone 7.5

Limiter la taille des assemblies

Créer les visuels quand on a besoin

Virtualisation UI

Optimiser vos données

Virtualisation DATA

Optimisation LongListSelector

Vidéo fun

Mais aussi… (1)

bit.ly/techdays12_LLS

bit.ly/techdays12_smokebyWP

Page 33: Analyse et optimisation des performances des applications Windows Phone 7.5

On adore C# Async

Et encore… (2)

Page 34: Analyse et optimisation des performances des applications Windows Phone 7.5

Conclusion

Page 35: Analyse et optimisation des performances des applications Windows Phone 7.5

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)

Conclusion

Page 36: Analyse et optimisation des performances des applications Windows Phone 7.5

Chaque semaine, les

DevCampsALM, Azure, Windows Phone, HTML5, OpenDatahttp://msdn.microsoft.com/fr-fr/devcamp

Téléchargement, ressources

et toolkits : RdV sur MSDNhttp://msdn.microsoft.com/fr-fr/

Les offres à connaître90 jours d’essai gratuit de Windows

Azure

www.windowsazure.fr

Jusqu’à 35% de réduction sur Visual

Studio Pro, avec l’abonnement MSDN

www.visualstudio.fr

Pour aller plus loin

10

février

2012

Live

Meeting

Open Data - Développer des applications riches avec le

protocole Open Data

16

février

2012

Live

Meeting

Azure series - Développer des applications sociales sur

la plateforme Windows Azure

17

février

2012

Live

Meeting

Comprendre le canvas avec Galactic et la librairie

three.js

21

février

2012

Live

Meeting

La production automatisée de code avec CodeFluent

Entities

2 mars

2012

Live

Meeting

Comprendre et mettre en oeuvre le toolkit Azure pour

Windows Phone 7, iOS et Android

6 mars

2012

Live

MeetingNuget et ALM

9 mars

2012

Live

MeetingKinect - Bien gérer la vie de son capteur

13 mars

2012

Live

MeetingSharepoint series - Automatisation des tests

14 mars

2012

Live

Meeting

TFS Health Check - vérifier la bonne santé de votre

plateforme de développement

15 mars

2012

Live

Meeting

Azure series - Développer pour les téléphones, les

tablettes et le cloud avec Visual Studio 2010

16 mars

2012

Live

Meeting

Applications METRO design - Désossage en règle d'un

template METRO javascript

20 mars

2012

Live

Meeting

Retour d'expérience LightSwitch, Optimisation de

l'accès aux données, Intégration Silverlight

23 mars

2012

Live

Meeting

OAuth - la clé de l'utilisation des réseaux sociaux dans

votre application

Prochaines sessions des Dev Camps

Page 37: Analyse et optimisation des performances des applications Windows Phone 7.5

Charlotte Gaidon

[email protected]

@nutchad

Jérémy Alles

[email protected]

@jalpf

www.japf.fr

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

Merci ! Questions ?