Der Performance Wizard für Silverlight

by Gregor Biswanger 14. März 2011 09:48

Das kürzlich veröffentlichte Visual Studio 2010 Service Pack 1 erweiterte den Visual Studio Performance Wizard um die Unterstützung von Silverlight Anwendungen. Womit nun ein professionales Profiling von Silverlight Anwendung durchgeführt werden kann. Leider ist allerdings der Performance Wizard nur in den Visual Studio Versionen Premium und Ultimate verfügbar.

 

Profiling Beispiel

Als Beispiel wird ein neues Silverlight-Projekt mit dem Namen „SilverlightPerformanceWizard“ angelegt. In die Mitte der Oberfläche (MainPage.xaml) wird ein Button mit dem Text „Process start“ gesetzt.

 

SNAGHTML3e9bb3

Abbildung 1 – Oberfläche der Silverlight-Beispielanwendung.

 

Anschließend wird mittels Doppelklick auf den Button das Click-Event Abonniert, worin der Source-Code aus Listing 1 folgt.

 

 

   1:  private void Button_Click(object sender, RoutedEventArgs e)
   2:  {
   3:    const string text = "test";
   4:   
   5:    for (int i = 0; i < 10000000; i++)
   6:    {
   7:      string value = text.Replace('t', 'b');
   8:    }
   9:  }

Listing 1 – Source-Code zur Performance-Messung.

 

 

Nun ist die Beispielanwendung einsatzbereit. Der Performance Wizard wird unter dem Menüpunkt „Analyze“ – „Launch Performance Wizard…“ gestartet.

 

 

image

Abbildung 2 – Performance Wizard starten.

 

Der Wizard bietet nun unterschiedliche Profiling Möglichkeiten an. Dabei kann die CPU, Speicher, Threads und vieles weitere analysiert werden. Bei diesem Beispiel wird normal der CPU verbrauch analysiert, wobei der erste Punkt ausgewählt bleibt.

 

 

SNAGHTML40a0b2

Abbildung 3 – Auswahl eines Profiling-Profils beim Performance Wizard.

Beim nächsten Schritt muss die Silverlight-Anwendung ausgewählt werden. Das wäre bei diesem Beispiel der erste Punkt mit „SilverlightPerformanceWizard“. Der zweite Punkt wäre nur das Web-Projekt das die eigentliche Silverlight-Anwendung hostet.

 

 

SNAGHTML40e89a

Abbildung 4 – Silverlight-Anwendung auswählen.

Der letzte Schritt bietet lediglich das sofortige ausführen des Profiling an. Das bei diesem Beispiel auch geschehen soll.

 

 

SNAGHTML41363d

Abbildung 5 – Das Profiling soll anschließend gestartet werden.

 

Jetzt öffnet sich die Silverlight-Anwendung wobei einmal auf den Button geklickt wird. Zum Test kann gerne nach 1-2 Sekunden Pause wiederholt auf den Button geklickt werden. Nun wird die Silverlight-Anwendung durch schließen des Browsers wieder beendet. Das Profiling von Visual Studio analysiert nun die aufgezeichneten Daten und stellt sofort Visualisiert den gesamten Prozessablauf dar.

 

 

SNAGHTML417e63

Abbildung 6 – Der Profiling Report von Visual Studio.

In der Mitte des Reports bei „Hot Path“ wird sofort ersichtlich das von der gesamt Laufzeit die Methode System.String.Replace(char, char) bis zu 88% CPU last verbrauchte. Die Visualisierte Darstellung zu Beginn des Reports kann auch nochmal auseinandergenommen werden um weitere Details aufzuspüren.

 

Zum Beispiel ist ersichtlich dass die Kurve bei 3 – 5 Sekunden und bei 7 – 9 Sekunden aufschlägt. Hier kann jetzt mittels Klick auf 3 bis 5 der Bereich markeiert werden. Anschließend klickt man rechts daneben auf „Filter by selection“.

 

image

Abbildung 7 – Speziellen Bereich analysieren.

Nach dem aktualisieren des Reports, wird sofort bei „Functions Doing Most Individual Work“ ersichtlich das in diesem Bereich 91,44 % die CPU von der Methode System.String.Replace(char, char) beansprucht hat. Somit wird klar, dass genau an dieser Stelle der Kurve der Button geklickt wurde.

 

image

Abbildung 8 – Der Report im Detail.

Fazit

Das Profiling ist sehr angenehm und hat sich bei einigen Tests positiv ausgewirkt. Sehr angenehm ist auch der Performance Explorer (Menü: „View“ – „Other Windows“ – „Performance Explorer“), womit jederzeit bereits erstellte Profiling-Wizard-Einstellungen direkt ausgeführt werden können und bisherige Profiling Reports hinterlegt sind. Sollten Features vermisst werden und ein noch umfangreiches Profiling ermöglicht werden, kann ich auch den kostenpflichtigen ANTS Profiler von Redgate empfehlen.



Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
kick it on dotnet-kicks.de

Kommentare

Kommentar schreiben


(Zeigt dein Gravatar icon)  

  Country flag

biuquote
  • Kommentar
  • Live Vorschau
Loading



Powered by BlogEngine.NET 1.4.5.0
Theme by Extensive SEO

Über den Autor

Gregor Biswanger

Microsoft MVP für Client App Dev
XING

Gregor Biswanger (Microsoft MVP für Client App Dev) arbeitet als Solution Architect und XAML Experte bei der Firma impuls Informationsmanagement GmbH aus Nürnberg.


Seine Schwerpunkte liegen im Bereich der .NET-Architektur, XAML und agilen Prozessen. Er veröffentlichte vor kurzem seine DVD mit Video-Trainings zum Thema „WPF 4 und Silverlight 4“ bei Addison-Wesley von video2brain.


Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group). 



Basta! 2011 Speaker

CLIPer

MCTS
Windows SharePoint Services 3.0 – Application Development (MCTS)