Le Post Infeeny

Les articles des consultants et experts Infeeny

Windows Phone 8: Performance & Optimization for Developers

On commence par une introduction sur la différence entre la performance réelle et perçue et une démonstration entre le temps de chargement entre un Wp7 et WP8

Avant JIT très rapide générant du code de mauvaise qualité

Maintenant JIT très lent générant du code performant. NGEN aide à générer le code en natif avant grâce au fait qu’on est passé avec la CLR .NET normale.

Points de performance améliorés :

  • Demarrage
    • NGEN
  • Splash Screen
  • Fill Rate
  • Panorama & Pivot
  • ListBox devenant blanc
  • ProgressBar (celle par défaut)

Quoi de neuf :

  • LongListSelector (remplace la ListBox)
  • Multi Core
  • Image Decode to Size
  • ViewportControl
  • Natif pur et hybride
    • Windows Runtime projects projects only from Native to managed (mais on peut toujours utiliser des évènements).

Démo d’une mise à jour d’un projet WP7 versWP8 qui augmente les performances du chargement sans rien faire.

Démo d’une ListBox qui n’était pas très réactive remplacé par un LongListSelector (belle amélioration des performances).

Maintenant les limites maximum de mémoire utilisé par les applications sont testée et bloquées à la certification si dépassées.

XNA & SL/XNA sont limités à 150MB (opt-in pour 180MB) quel que soit les spécifications des téléphones.

Pas de limite de mémoire en mode DEBUG.

Améliorations de la gestion de la mémoire (Le panorama utilise maintenant moins de mémoire).

Rappels de compteur de performance :

  • Application.Current.Host.Settings.EnableFrameRateCounter = true
  • Application.Current.Host.Settings.EnableRedrawRegions = true

Projets Hybrides :

  • Il peut être intéressant dans le cas d’applications faisant beaucoup d’appels .NET à l’API native de créer un composant C++ qui englobe tous ces appels en un seul afin d’éviter des problèmes de marshalling.
  • Penser à utiliser des composants natifs pour le traitement d’images ou de vidéos etc…
  • Penser à DrawingSurface et DrawingSurfaceBackgroundGrid

Dans les projects C++ D3D :

  • Penser au scaling (utiliser du fullscreen n’est pas toujours une bonne solution)
  • Le téléphone supporte D3D 9 Level 3
    • Attention car l’émulateur supporte des niveaux supérieurs

Démo Hybrid Maze (http://aka.ms/vwwtxa)

Il parle ensuite du nouveau profiler d’application pour WP8 (pour .NET et Natif) et montre comment l’utiliser.

Une session assez intéressante par un speaker très dynamiques 🙂

John

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :