Mehr von Jürgen Gutsch

Mehr von Jürgen Gutsch

Empfehlungen von Jürgen Gutsch

Blog-Empfehlungen von Jürgen Gutsch

Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Jürgen Gutsch

ASP.NET und mehr...
BASTA! Tag 3: Speed Freak C# and .NET!

Christian Gross legte eine wirklich beeindruckende Session hin. Als erste zeigte er eine Bloomberg Anwendung die Real Time Daten live visualisierte. Desweiteren Empfahl er vor jeder weiteren Demo erst einmal dotTrace von JetBrains als Profiler um Performanceproblemen auf den Grund zu kommen. Gut das waren die ersten fünf Minuten der Session :-)

Ab jetzt zeigte er eine Reihe von beeindruckenden Demos. Angefangen mit dem Hinweis, dass Properties mit Gettern und Settern um einiges langsamer sind als öffentliche Felder.

In einer weiteren Demo mit mehreren tausend Schleifendurchläufen zeigte er dass die Verwendung von Klassen als Datenobjekte um einiges langsamer sind als Structs. Schneller als Structs allerdings sind mehrdimensionale Arrays. Aus Gründen der Lesbarkeit empfiehlt Cristian allerdings Structs zu verwenden.

Weiter ging es mit dem Umwandeln von Objekten von einem Typ in den anderen. Das Ergebnis: Casts kosten, eine Prüfung vor einem Cast kostet noch mehr. Zu casten und dabei Fehler mit einem Try-Catch-Block abzufangen kostet um einiges mehr. Die Lösung: “Know your types!!!”, also Casts vermeiden und typisiert arbeiten (Generics verwenden).

Auch interessant war, dass Vererbung und Implementierung von Interfaces einen Massiven Einfluss auf die Performance hat. Methoden die Vererbt, überschrieben oder über ein Interface implementiert wurden waren um ca. das 200fache langsamer als Aufrufe von Methoden aus einfachen Klassen oder Structs.

Und am Schluss kam das aller beste: C# ist schneller als C++! Christian zeigte die gleiche Demo in C++ und C#, dabei war die C# Demo doppelt so schnell wie die C++ Demo. Und es ging noch besser. Mich Codegenerierung per ExpressionTrees halbierte er die Zeiten noch einmal um die hälfte.

Bisher war das auf der BASTA! die beeindruckteste Session :-)

DotNetKicks-DE Image
Posted: Mittwoch, 24. Februar 2010 17:50 von Jürgen Gutsch
Abgelegt unter: , , ,

Kommentare

Golo Roden sagte:

Hi Jürgen,

und was war das Fazit?

Dass diverse der genannten Sprachmerkmale schneller sind als die "gängigen" Pendants, liegt auf der Hand - aber welchen Schluss zieht man daraus?

Die Lösung kann ja kaum sein, öffentliche Felder und Structs als generelles Mittel der Wahl anzupreisen?

Welche Konsequenzen zieht man aus diesem Wissen?

Viele Grüße,

Golo

# Februar 25, 2010 09:53

Jürgen Gutsch sagte:

Hi Golo,

sorry, in diesen BASTA!-Berichten ziehe ich keinen Fazit, das mache ich separat in einem weiteren Blogbetrag. Selbsverständlich ist es keine Lösung seine Anwendung mit offentlichen Feldern zu "vermurksen". Aber meine Sicht werde ich ein andermal posten.

Viele Grüße

Jürgen

# Februar 25, 2010 10:22

Golo Roden sagte:

Hi Jürgen,

ist ja auch okay - aber gab es auch von Christian kein Fazit?

Viele Grüße,

Golo

# Februar 25, 2010 22:54

Jürgen Gutsch sagte:

Hi Golo,

mein persönliche Fazit kannst du hier lesen: http://www.aspnetzone.de/blogs/juergengutsch/archive/2010/02/26/fazit-zu-speed-freak-c-and-net.aspx

Christian selber hat kein Fazit genannt.

Gruß

Jürgen

# Februar 26, 2010 09:39

Peter Bucher sagte:

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt,

# März 14, 2010 16:53

Rene Drescher-Hackel sagte:

Hallo Jürgen,

es ist in der Tat fatal, was ich hier lese - es kann ja nicht das unausgesprochene Fazit deiner Darstellung sein, dass man keine Interfaces oder Eigenschaften verwenden soll...

Rene

# März 14, 2010 21:14

Jürgen Gutsch sagte:

Sorry René, habe ich habe wie oben dem Golo bereits geschrieben, kein Fazit geschrieben und mir auch an der Stelle keines gebildet. Ich gebe hier lediglich die Session wieder. Reine Berichterstattung ;-)

Du kannst Dir an dieser Stelle gerne ein eigenes Fazit Bilden :-)

Mein Fazit kannst du hier lesen:  http://www.aspnetzone.de/blogs/juergengutsch/archive/2010/02/26/fazit-zu-speed-freak-c-and-net.aspx

# März 14, 2010 21:31
Anonyme Kommentare sind nicht zugelassen