www.planet-xaml.net
[Silverlight]

Silverlight Debugging und Performance

by Florian Krüsch October 23, 2008

Im Moment arbeite ich nebenbei an einer 3D-Engine für Silverlight. Die Engine soll sich vor allem für die schematische Darstellung von Räumen eignen, man soll also durch Räume durchgehen können.

Für die Implementierung bedeutet das, dass nicht nur von 3D nach 2D transformiert/projeziert werden muss, also Matrizen angewendet werden müssen, sondern zunächst auch mal, dass gegen ein Frustrum geclippt wird. Alle Geometrie, die hinter, rechts, links oder oben und unten des sichtbaren Bereichs liegt wird abgeschnitten.

Meine ersten Versuche deuteten auf sehr schlechte Performance hin. Schuld war das Starten im Debug Mode mit diversen Aufrufen von Debug.WriteLine. Im Release Mode läuft das Ganze um Größenordnungen schneller.

Der Algorithmus selbst (ich experimentierte mit Liang-Barsky und Cohen-Sutherland) machte keinen Unterschied. Also schaute ich mir die Sache mit dem XPerf Tool an, das Seema hier beschreibt. Dort kann man wunderbar sehen, dass das Zeichnen (agcore.dll) die meiste Zeit dauert, während das Ausführen von Code (coreclr.dll) nur einen marginalen Anteil von CPU Zyklen verschlingt.

Das bedeutet, dass es relativ unwichtig ist ob der Algorithmus 20% schneller oder langsamer ist. Aber es macht einen grossen Unterschied ob Silverlight viel oder wenig auf den Bildschirm malen muss.

 

No comments

Language | Sprache

All[e]  |  english  |  deutsch
Tags
 

Profile

Florian Kruesch

I am working as a freelance software architect, developer and consultant in Düsseldorf, Germany.

My focus is on Microsoft technologies and .NET 3.0, especially WPF, ASP.net and SQL Server.

I've been a lead programmer on the WPF development of the OTTO Vista Store at SinnerSchrader Studios.

My client list includes DHL, LG and Ogilvy Interactive.