Silverlight Performance Tuning

Sind Sie es Leid mit Performanceproblemen in Silverlight zu kämpfen
und Bildfrequenzaufbauraten unter 10 FPS zu haben?
Dann wird dieser Beitrag wahrscheinlich Ihre Laune heben!

 

Folgende Tricks werden Ihnen dabei helfen:



Erweitern Sie bei den Funktionen den Code an gegebener Stelle im Silverlight xaml.
 
MaxFrameRate
Die maximale Framerate kann auch gesetzt werden, um Performanceschwankungen zu vermeiden. Bei statischen Anzeigen werden keine 60 Bilder pro Sekunde gebraucht weshalb man in diesen Fällen die Framerate auf 30 setzen kann.
 
EnableGPUAcceleration
Mit dieser Funktion können Sie die Grafikkarte beim Rendern einbinden um die CPU zu entlasten.
Zusätzlich müssen Sie dem Controll welches von der Grafikkarte übernommen werden soll, die Eigenschaft CacheMode auf „BitmapCache“ setzen.
Wenn sie EnableFrameRateCounter und EnableGPUAcceleration aktiviert haben, erhalten Sie sogar die zusätzliche Information wie viel Speicher von der Grafikkarte verwendet wird.
 
Windowless
Setzen Sie die Windowless Funktion auf „true“ nur wenn es unbedingt notwendig ist. Das verlangsamt die Anwendung.
 
PluginBackground
Diesen sollten Sie nur dann auf „Transparent“ setzen wenn es unbedingt nötig ist.
Das erhöht den Aufwand beim Rendern.
Animationen, Skalierungen und Medien lösen ein erneutes Rendern des Textes aus, was viele Ressourcen kostet. Vermeiden Sie dieses, indem Sie anstatt des Textes eine
Bitmap verwenden.
 

Debugging Helpers:

EnableRedrawRegions
Aktivieren sie diese Funktion und Sie sehen welche Regionen bei jedem Bildaufbau neu gezeichnet werden indem diese blau, gelb oder pink gezeichnet werden. Ständiges Neuzeichnen ist ressourcenaufwändig.
 
EnableFrameRateCounter
Sie können diese Funktion aktivieren um zu sehen mit welcher Bildwiederholfrequenz ihr Tool arbeitet in der Form von: aktuelle Bilder pro Sekunde / Maximum Bilder pro Sekunde
 
EnableCacheVisualization
Ist diese Funktion ativiert, werden die mit dem „BitmapCache“ versehenen Objekte grün oder gelb markiert. Das was nicht von der Grafikkarte übernommen wird oder nicht übernommen werden kann, wird rot markiert.
 
XPerf
Ist ein Tool mit dem Sie zusätzliche Informationen tracken können wie CPU Auslastung über die Zeit.
http://msdn.microsoft.com/de-de/performance/cc825801
Nähere Infos dazu finden Sie in diesem Blog:
http://blogs.msdn.com/b/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx

Schreibe einen Kommentar