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) ist freier Consultant, Trainer, Autor und Speaker.


Seine Schwerpunkte liegen im Bereich der .NET-Architektur, agilen Prozessen und XAML. Er veröffentlichte vor kurzem seine DVD´s mit Video-Trainings zum Thema „Meine erste Windows 8 App“, „Windows Store Apps mit XAML und C#“ und „WPF 4.5 und Silverlight 5“ bei Addison-Wesley von video2brain.


Biswanger ist auch im Auftrag von Intel GmbH als Technologieberater für die Intel Developer Zone aktiv und ist Leader bei der Ingolstädter .NET Developers Group (INdotNET). 

 

Video über mich:
http://www.youtube.com/watch?v=mx_6SiiLxjk


Basta! 2011 Speaker

CLIPer

MCTS
Windows SharePoint Services 3.0 – Application Development (MCTS)