Blog du Pôle .NET

Partager pour mieux développer...

Comment « BenchMarker » une application développée avec le .NET Compact Framework ?

clock November 10, 2008 17:01 by author lnyffels

Lors d’une mission récente, j’ai été amené à tester les performances d’une application sur Pocket PC développée en C# avec le .NET Compact Framework 2.0.

L’objectif était de mesurer des temps de réponses et de tester la consommation mémoire de l’application.

1-      Mesure de la consommation et visualisation des objets .NET aloués  

Afin de détecter d’éventuels problèmes de fuite mémoire et d’obtenir des données sur la taille des objets alloués pour l’application, j’ai utilisé l’outil .NET CF Remote Performance Monitor, livré avec le package .NET Compact Framework Power Toys 3.5 de Microsoft.Ces outils gratuits sont disponibles en téléchargement à l’adresse suivante :

   http://www.microsoft.com/downloads/details.aspx?familyid=C8174C14-A27D-4148-BF01-86C2E0953EAB&displaylang=en.

L’outil permet de démarrer l’application sur le Pocket PC depuis votre PC sous Windows et de remonter en temps réel les informations suivantes :

ü   La taille de la mémoire allouée pour l’application par la machine virtuelle

ü   Les objets désalloués par le Garbage Collector

ü   Le nombre d’appels natifs « interop » effectués

ü   Les collections génériques allouées

ü   Le nombre de classes chargées à un instant t

ü   Le nombre de méthodes appelées

ü   Le nombre d’exceptions managées relevées.

ü    

L’option GC Heap Viewer permet également d’obtenir une « photo » à un instant donné des objets .NET alloués par l’application, ainsi que leurs consommations en mémoire (estimés en bytes). Vous pouvez également sauvegarder vos relevés et l’outil permet de faire des comparaisons de nombre d’instances entre deux relevés.

L’outil est simple à prendre en main et peut rendre de très bons services...

2 – Tester les performances d’une méthode ou d’une portion de code

Il peut être nécessaire de marquer une ou plusieurs méthodes dans votre code afin de relever des temps en runtime. Ces temps peuvent être stockés dans un fichier sur le Pocket PC afin d’être exploiter ultérieurement.

Je joins à ce post une classe technique que j’ai utilisée à plusieurs reprises qui stocke des temps marqués dans un fichier xml par section.

public void EcritureFichier() {            BenchMark oBench = new BenchMark("Ecriture_Flash", "FCT_EcritureFichier");            oBench.Begin();            //ON MEMORISE LES INFORMATIONS FLASHE             StringBuilder MyStringBuilder = new StringBuilder();            MyStringBuilder.Append(tabReleve[compteurReleve - 1].CodeIlot.ToString());            MyStringBuilder.Append(";");            MyStringBuilder.Append(tabReleve[compteurReleve - 1].CodeArticle.ToString());                                        oBench.End(); } 

  

L’écriture des temps se fait en mémoire et la sauvegarde physique sur fichier est réalisée via la méthode : BenchMark.SaveBenchDocument(). (Cf. Fichier joint)

Laurent Nyffels 

BenchMark.cs (4,16 kb)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


PLINQ dans VS 2010 .Net4

clock November 9, 2008 02:17 by author aequoy
Depuis hier je joue un peu :D avec VS 2010.
Entre 2 plantages, j'ai pratiqué quelques exemples de requêtes parallèlisées via PLINQ.
Dans ma machine virtuelle, il est pour l'instant très difficile de mesurer le gain (quelques millisecondes dans mes premiers tests).
En lisant un peu le blog de la team parallel extensions, il serait possible de simuler dans la machine virtuelle le multi coeur grâce à hyperV.

Donc wait and see, j'essaierai de mettre cela en place dans un futur proche avec l'aide d'un ingénieur IT.

En attendant, c'est assez bluffant, quasi-indolore au niveau du code.
Par contre les objets de requêtage PLINQ sont complètement différents de ceux de Linq (objectquery dans mon cas).
Linq

PLinq

Alexandre Equoy

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


UML et VS 2010

clock November 8, 2008 10:23 by author aequoy
Une des nouveautés de VS2010 concerne l'intégration de diagrammes UML (Yoann tu vas adorer :) )
Les 12 diagrammes UML ne sont pas intégrés.
Les 5 diagrammes les plus importants font leur apparition en plus du diagramme de classe existant :
  • Diagramme de cas d'utilisation
  • Diagramme d'activité
  • Diagramme de séquence
  • Diagramme de composant
  • Diagramme de couche
Personnellement c'est une excellente nouvelle qui va nous permettre d'intégrer plus de modélisation et de pilotage dans nos développements.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Graphs d'objets dans VS 2010

clock November 8, 2008 09:47 by author aequoy

Alexandre Equoy

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Screenshots Visual Studio 2010 & Framework 4.0

clock November 8, 2008 09:24 by author aequoy
Quelques screenshots de Visual Studio 2010 CTP.




Alexandre Equoy

Currently rated 3.5 by 2 people

  • Currently 3.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Visual Studio 10 et framework 4.0 CTP Preview disponible

clock November 8, 2008 02:48 by author aequoy

Un petit billet pour vous indiquer qu'une machine virtuelle contenant le framework 4 et Visual Studio 10 est disponible en téléchargement.

Lien vers le téléchargement: >Téléchargement

Je posterai quelques screenshots quand le téléchargement sera terminé.

Un lien si vous avez d'éventuels soucis avec les activations dans la VM

Alexandre Equoy

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Silverlight Extension

clock November 6, 2008 06:00 by author aequoy

Les Silverlight Extension ont été développés en France (c'est français monsieur ;) ) pour faciliter l'utilisation de SilverLight² dans nos projets. 

Tout le code source est disponible gratuitement et peut être utilisé dans nos projets en production.
Pour cela SLExtensions est découpé en 3 catégories de ressources :

  • Des Controles :
    • Treeview
    • Captcha
    • Virtualized stack panel
    • Dockpanel
    • Flow layout
    • Viewbox
    • GoogleMap
    • Virtual earth
    • Change tracker
    • Binding comparer
    • Bootstrap
    • HTML Editor
  • Une library riche de class ou d’helper
    • CommandService
    • Deepzoom helpers
    • Mouse wheel listener
    • Various comparers
    • Google analytics
    • Browser history
  • 3 Players skinable générique
    • Deepzoom
    • Video
    • Photo

Un showcase sympathique est présent sur le site.

Silverlight Extension Showcase

source :

le blog de Pierre Lagarde

Alexandre Equoy

Currently rated 3.0 by 1 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Calendrier

<<  July 2010  >>
MoTuWeThFrSaSu
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
Afficher en pleine page

Visiteurs