Le Post Infeeny

Les articles des consultants et experts Infeeny

Deep Dive into the Kernel of .NET on Windows Phone 8

Cette session comment par un rappel de qu’est la CLR avec un schema explicatif montrant les différentes couches.

Depuis Windows Phone 8, Windows Phone utilise la CoreCLR à la place de NETCF.
Parmi les nouvelles fonctionnalités de WP8 on trouve le support de la programmation native et donc la possibilité de partager ce code entre différentes plateformes. On trouve aussi la possibilité d’écrire des applications réactives et fluides.
Parmi les améliorations de la performance on trouve l’amélioration du temps de chargement et du temps d’exécution (nouveau JIT et nouveau Garbage Collector) et de la réactivité des applications.

Les applications peuvent maintenant être hybrides (XAML/C#/C++) et le portage d’applications C++ est facilité. On trouve aussi une amélioration du P/Invoke qui améliore la performance de l’interop. Dû à l’utilisation de l’API Windows 8 dans Windows Phone 8, les applications peuvent être facilement portées.

S’ensuit une démo de l’intégration d’un code natif en C dans une application (utilisant GnuGO).

Après cette démo on nous parle des portables librairies afin de résoudre le problème de la portabilité du code entre WP7, WP8 et Win8 (mais c’est valable pour bien d’autres plateformes).

On nous parle aussi de la programmation asynchrone avec async/await avec une démo de l’implication de ce dernier pour la fluidité des applications.

Par la suite on nous reparle de la compilation des applications dans le cloud. Le temps de démarrage est deux fois plus rapide sur Windows Phone 8 que sur Windows Phone 7. On nous explique comment se passe la génération du code machine en .NET et une comparaison entre JIT et NGEN. On nous explique aussi le fonctionnement de NGEN (explication sur les vTables).
On nous explique ce qu’est le MDIL (Machine Dependent IL) et à quoi il sert.
S’ensuit un démo de la génération de MDIL depuis Visual Studio et du temps de génération.

On a ensuite quelques chiffres montrant les améliorations obtenues grâce à l’optimisation du code effectuée dans lors de la phase de compilation dans le code.

Quelques amélioration du Garbage Collection :

  • Moins de latence
  • Utilise plusieurs cœurs pour l’allocation
  • Amélioration du tracking de la durée de vie des objets
  • Gestion de 3 générations d’objets

Une super session d’explications détaillées. A voir !

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 :