analyse et optimisation des performances des applications windows phone 7.5

Post on 07-Jul-2015

183 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

palais des

congrès

Paris

7, 8 et 9

février 2012

7 février 2012

Charlotte Gaidon & Jérémy AllesTHALES Services Grenoble

Analyse et optimisation

des performances des

applications Windows

Phone

Charlotte Gaidon

Formatrice WPF / SL

charlotte.gaidon@gmail.com

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

Présentation

@nutchad

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 90s

bit.ly/techdays12_certif

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

s Mo

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

4,2

1.63.1

7.26.4 6.3

10.2

7.3

9.4

Lancement Sauvegarde Affichage

Emulateur Lumia 800 Omnia 7

Nos amis les threads

Silverlight

animationsinput

dispatch parsingnetworking dispatch

OS interoplayoutrasterize binding

Background Thread

User Interface Thread

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

Outils

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

DEMO

Compteurs de performance

DEMO

Suivi consommation mémoire en temps-

réel

bit.ly/techdays12_memoire

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

DEMO

Analyse de la mémoire avec le profiler

Penser à se désabonner des events

Attention aux délégués anonymes

Le GC bloque le thread UI

Bilan profiler mémoire

DEMO

Analyse de la performance avec le

profiler

Arbre Visuel

Avant : total = 29 / profondeur = 8

Après : total = 16 / profondeur = 4

Bilan profiler (1)

Binding & Visibility

Ne pas surcharger le thread graphique

Bilan profiler (2)

Bonnes pratiques

Contrôle «PivotIndicator »

1 rectangle dont on anime la position

BitmapCache / Compositor

DEMO

BitmapCache + Compositor

Visibility (Collapsed Visible)

compromis temps / mémoire

Opacity (0 1)

à combiner avec BitmapCache

Cacher par opacité ?

bit.ly/techdays12_hiding

DEMO

Visibility vs Opacity

Format : jpg ou png ?

Bonne résolution !

XAML vs image…

CreateOptions="BackgroundCreation"

BuildAction = Content

Bien gérer les images

DEMO

« Please wait... »

Toujours montrer de l’activité à l’utilisateur

(Performance)ProgressBar

SplashScreen animé

Tilt effect

Transition entre les pages

Performance & Perception

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

On adore C# Async

Et encore… (2)

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)

Conclusion

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

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

Merci ! Questions ?

top related