52
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

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

Embed Size (px)

DESCRIPTION

S’il est très simple de réaliser des applications Windows 8 de qualité, il est moins évident de créer des applications ultra performantes. Windows tourne désormais sur tout type d’appareils, des PC de gamers aux tablettes peu puissantes. Pour ces dernières, il est nécessaire de tirer parti au maximum des API fournies par WinRT. Cette session vous propose de découvrir 10 astuces afin d’améliorer visiblement les performances de vos applications.

Citation preview

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