C# vs. JavaScript im IE9

by St. Lange 11. February 2011 19:30

Mit dem gestern erschienenen Release Candidate von Internet Explorer 9 hat Microsoft einen äußerst leistungsfähigen Browser geschaffen. Neben vielem anderen ist die Ausführung von JavaScript enorm beschleunigt worden, u. a. weil der Code compiliert wird. In diesem Zusammenhang erinnerte ich mich an ein Programm aus den Anfängen von Silverlight.

Vor ca. drei Jahren gab es von Microsoft für Silverlight 1.1 eine Schach Demo-Anwendung zum Vergleich der Performance von .NET und JavaScript. Dieses SilverlightChess genannte Programm verwendet Silverlight zur Darstellung des Schachbretts und der Spielfiguren. Der eigentliche Spielalgorithmus Garbo Chess ist zweimal implementiert, einmal mit C# und einmal mit JavaScript. Wenn man das Programm gegen sich selbst spielen lässt, kann man je Farbe wählen, ob die .NET oder JavaScript Variante verwendet werden soll. Neben dem Spielfeld wird angezeigt, wie viele Spielknoten pro Sekunde für den jeweils letzten Zug durchprobiert wurden.

Auch wenn SilverlightChess kein richtiger Benchmark-Test ist, kann man damit ganz gut den Performanceunterschied zwischen .NET und JavaScript veranschaulichen. Mit dem IE8 schafft JavaScript so rund 3.000 Knoten pro Sekunde (getestet auf meinem schon etwas älteren Core 2 Quad mit 2.400 MHz). Der aktuelle Firefox 3.6 ist im Vergleich dazu fast 5-mal schneller. Der IE9 RC dagegen schafft um die 100.000 Knoten, was einer Steigerung von rund 3.000% entspricht. Dieser hohe Faktor kommt natürlich auch daher, dass der IE8 bzgl. JavaScript der langsamste Vertreter unter den aktuellen Browsern ist.

Die C#-Implementierung liegt hingegen mit ca. 1.400.000 Knoten pro Sekunde noch mal gut eine Größenordnung darüber. Dies zeigt sehr deutlich, dass C# bzw. Silverlight die bessere Wahl ist, wenn Client-seitig komplexe Berechnungen durchgeführt werden sollen und es auf hohe Performance ankommt. Hier SilverlightChess zum Ausprobieren. Es ist praktisch unverändert zur Originalversion; lediglich mit Visual Studio 2010 und für Silverlight 4 übersetzt:

Da der Quellcode auf www.silverlight.net offensichtlich nicht mehr existiert, hier die jüngste Version, die ich habe, zum Runterladen.

SilverlightChess2008.zip (67 kB)

Tags:

Silverlight

Powered by BlogEngine.NET 1.6.1.0 - Impressum