Transcript
Page 1: 10 tips pour améliorer les performances de vos applications Windows 8

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: 10 tips pour améliorer les performances de vos applications Windows 8

10 tips pour améliorer les performances de vos applications Windows 8

Nicolas AntoineSr Support EngineerMicrosoft

Code / Développement

Loïc ReboursSr Analyst .NET / [email protected]

Page 3: 10 tips pour améliorer les performances de vos applications Windows 8

Christophe BigotKarim Luccin- BlogSr Analysts .NETAvanade

10 tips pour améliorer les performances de vos applications Windows 8

Nicolas AntoineSr Support EngineerMicrosoft

Code / Développement

Page 4: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

EXPÉRIENCE UTILISATEUR

Pourquoi une App performante ?

Page 5: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Expérience utilisateur– Les fonctionnalités ne font pas tout– Pas de perception des rouages de l’App– App performante = meilleures reviews

• Windows Application Certification Kit– Pas de bras performances, pas de Store

Pourquoi une App performante ?

Page 6: 10 tips pour améliorer les performances de vos applications Windows 8

C++ LES BASESTip 1

Code / Développement

Page 7: 10 tips pour améliorer les performances de vos applications Windows 8

AMÉLIORER SUSPEND / RESUMETip 1 (Bis)

Code / Développement

Page 8: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Etat d’exécution de l’App

Cycle de vie de votre App

NotRunning

Running

Suspended

Activated Suspending

Resuming

Page 9: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• App Data– Persiste entre plusieurs sessions– Sauvegarde incrémentale– Windows.Storage.ApplicationData –

RoamingSettings

• Session Data– Locale à la session courante– Supprimée au Alt + F4, reboot ou log off– Gérée par Windows si votre App ne se termine pas

La bonne sauvegarde au bon moment

Page 10: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 1 { Sauvegarde et restauration }

Page 11: 10 tips pour améliorer les performances de vos applications Windows 8

ASYNC / AWAITTip 2

Code / Développement

Page 12: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Introduit avec .Net 4.5 (C# 5 et VB 5)• Asynchronisme généré par le compilateur • Illustration avec la méthode suivante :

static async void DoRequestAsync() { byte[] buffer = new byte[100];

var request = HttpWebRequest.Create( "http://www.bing.fr" ); var response = await request.GetResponseAsync();

var byteRead = await response.GetResponseStream().ReadAsync( buffer, 0, 100 ); if( byteRead == 100 ) { Console.WriteLine( "Success" ); } }

async / await sous le capot

Page 13: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 2 { async / await sous le capot }

Page 14: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

Exécution asynchrone, mais pas parallèle

UI thread

Async methodAwait

Async workAwait

UI thread

Async methodAwait

Async work

Page 15: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 2 { Asynchronisme et parallélisme }

Page 16: 10 tips pour améliorer les performances de vos applications Windows 8

« HELLO, I SUPPORT INCREMENTAL LOADING »

Tip 3

Code / Développement

Page 17: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Inutile de charger des milliers d’éléments• Il faut charger les données lorsque l’utilisateur en a

besoin• Interface ISupportIncrementalLoading

Chargement incrémental des données

public interface ISupportIncrementalLoading{ bool HasMoreItems { get; }

IAsyncOperation<LoadMoreItemsResult> LoadMoreItemsAsync(uint count);}

Page 18: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 3 { ISupportIncrementalLoading }

Page 19: 10 tips pour améliorer les performances de vos applications Windows 8

CACHER LESTip 4

Code / Développement

Page 20: 10 tips pour améliorer les performances de vos applications Windows 8

CACHER LES RESSOURCESTip 4

Code / Développement

Page 21: 10 tips pour améliorer les performances de vos applications Windows 8

MISE EN CACHE DES RESSOURCESTip 4

Code / Développement

Page 22: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Ne chargez vos ressoures que si besoin

• Ressources ré-utilisées = ressources en cache

• Minimisez l’utilisation des ressources distantes

Les ressources

Page 23: 10 tips pour améliorer les performances de vos applications Windows 8

OPTIMISER LES ANIMATIONSTip 5

Code / Développement

Page 24: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Pour le rendu XAML Il y a 2 threads importants :– Le thread UI– Le thread Compositor

• Le thread UI est en charge du :– Parsing du XAML et layout de la scène– Rendering des éléments

• Le thread Compositor est en charge du :– Rendu des scènes (instructions GPU / CPU)– Rendu des animations

Un peu de théorie…

Page 25: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Animations dépendantes :– Utilisation intensive du thread UI– Exemples : changement de taille de police, changement

de largeur, hauteur…

• Animations indépendantes :– Les plus performantes– Gérées par le thread Compositor– Exemples : scaling, rotation, translation…

2 types d’animations

Page 26: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Propriété EnableFrameRateCounter• Affiche les compteurs de performance

Un peu de DebugSettings

Thread UIThread Compositor

Page 27: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 5 { Animation dépendantes vs. indépendantes }

Page 28: 10 tips pour améliorer les performances de vos applications Windows 8

OPTIMISATIONS XAMLTip 6

Code / Développement

Page 29: 10 tips pour améliorer les performances de vos applications Windows 8

• Thread UI– Parcours de la scène XAML et layout de celle ci– Génération des ordres de rendu

• Thread Compositor– Exécution des ordres de rendu

• Carte graphique– Rastérization et blending des pixels

Code / Développement

Qu'est-ce qui prend du temps ?

Page 30: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Limiter la profondeur de scène en ne créant pas de contrôles superflus

• Limiter l'overdraw en utilisant correctement les templates

• Utiliser DebugSettings.IsOverdrawHeatMapEnabled

Optimisations XAML

Page 31: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 6 { Optimisations XAML }

Page 32: 10 tips pour améliorer les performances de vos applications Windows 8

VIRTUALISER L'UITip 7

Code / Développement

Page 33: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Ne créer que les contrôles visibles à l'écran• Les réutiliser au maximum

Virtualisation de l’UI

Item 0

Item 1

Item 2

Item 3

Item 4

Item 5

Item 6

Item 7

Item 8

Item 9

Page 34: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Inutile de charger ce qui n'est pas visible à l'écran• Recycler les contrôles conteneurs• Fonctionne avec ListView, GridView, ...• Ne fonctionne PAS avec les contrôles qui ne limitent

pas la taille: – ScrollViewer– Canvas– VariableSizedWrapGrid– ...

Virtualisation de l’UI

Page 35: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 7 { Virtualisation de l'UI }

Page 36: 10 tips pour améliorer les performances de vos applications Windows 8

LA MISE EN CACHE DES PAGESTip 8

Code / Développement

Page 37: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

• Inutile de recharger les pages déjà chargées• 1 ligne de code !

Gérez le cache des pages

public MyPage(){ this.InitializeComponent();  this.NavigationCacheMode = NavigationCacheMode.Enabled;}

Rechargez ce qui doit l’être. (Flux RSS)

Page 38: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 8 { NavigationCacheMode }

Page 39: 10 tips pour améliorer les performances de vos applications Windows 8

VS 2012 PERFORMANCE ANALYZERTip 9

Code / Développement

Page 40: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

VS 2012 Performance Analyzer

Page 41: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 9 { Visual Studio 2012 Performance Analyzer }

Page 42: 10 tips pour améliorer les performances de vos applications Windows 8

WINDOWS PERFORMANCE ANALYZER

Tip 10

Code / Développement

Page 43: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

Windows Performance Analyzer

• Permet de tracer tout ce qui se passe : Drivers, lancement d'applications, chargement de ressources, ...

• Adapté à tout type d'applications (dont les App Windows Store)

• Offre un moyen d'analyser toutes les facettes des performances d'une application (5 s pour démarrer !)

Page 44: 10 tips pour améliorer les performances de vos applications Windows 8

DémoTip 10 { Windows Performance Analyzer }

Page 45: 10 tips pour améliorer les performances de vos applications Windows 8

AVANADE & MICROSOFT SUPPORTTip 11

Code / Développement

Page 46: 10 tips pour améliorer les performances de vos applications Windows 8

• Joint Venture d’Accenture et Microsoft, la mission d’Avanade consiste à aider les entreprises à optimiser leurs investissements informatiques et à développer des solutions complètes, génératrices de bénéfices concrets, autour des technologies Microsoft.

• Avanade compte aujourd’hui plus de 17.000 professionnels dans plus de 20 pays.Le chiffre d’affaires 2012 est de 1,3 milliard $US

• Une expertise unique fondée sur un investissement permanent en partenariat avec Microsoft : Avanade est notamment n°1 en nombre de certifications par employé (MCPD, MCTS, MCITP), dispose de 29 Microsoft Most Valued Professionals et 14 elite Microsoft Certified Architects.

• Un lien privilégié avec Microsoft reconnu par «Microsoft’s Global SI Partner of the Year award” reçu en 2012, 2011, 2010, 2009, 2008, 2006, 2004 et 2001.

• Avanade est une société orientée «Assets» participant à l’évolution des solutions Microsoft.

• Notre base de connaissances globale consolide l’expérience acquise sur les différents projets.

• Avanade France a obtenu en 2012 le label « Top Employeur » 2012

Avanade 

 

Copyright Avanade - Reproduction interdite.

Page 47: 10 tips pour améliorer les performances de vos applications Windows 8

Copyright Avanade - Reproduction interdite.

Avanade

Sessions animées par nos experts

11

Retrouvez-nous sur le Stand

30

Page 48: 10 tips pour améliorer les performances de vos applications Windows 8

Poursuivons la conversationSupport Premier à votre écoute!

Nom du speakerFonction du speakerSociété du speaker

Stands F-G-H au Village Microsoft

Page 49: 10 tips pour améliorer les performances de vos applications Windows 8

4 ouvrages écrits par 13 Microsoftees

Code / Développement

http://www.editions-eyrolles.com/livres/Windows-8-pour-les-professionnels/

Page 50: 10 tips pour améliorer les performances de vos applications Windows 8

Q & A

Code / Développement

Page 51: 10 tips pour améliorer les performances de vos applications Windows 8

Code / Développement

Ressources

• Analyse des performances: http://msdn.microsoft.com/en-us/library/ms182372.aspx• ISupportIncrementalLoading :

http://blogs.msdn.com/b/devosaure/archive/2012/10/15/isupportincrementalloading-loading-a-subsets-of-data.aspx

• Performance tips for Windows Storeapps using XAML : http://channel9.msdn.com/Events/Build/2012/4-103

• Virtualisation de l'UI : http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh780657.aspx

• 10 tips pour développeur : http://blog.loicrebours.fr/2012/09/22/10-tips-pour-developpeur-windows-8/

Page 52: 10 tips pour améliorer les performances de vos applications Windows 8

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


Recommended