Frage

Für Silverlight 2, es sieht aus wie die Programmierung folgende Möglichkeiten:

  • C #
  • VB
  • DLR Skriptsprachen
    • IronRuby
    • Ironpython
    • A leider vernachlässigt (wenn nicht abgebrochen) Managed JScript

Ist das ein Fall, in dem die Muttersprachen (C # und VB) sind schneller als die DLR Sprachen durch eine Größenordnung oder so?

Jede Hoffnung auf „Leben“ in Ironpython, wenn ich Silverlight Client-Programmierung zu tun, oder sollte ich erwarten für rechenintensive Arbeit in C # fallen?

Meine Umfrage von Sprachen kommt von dieser Reihe von Beispielen für C # und VB und diese Seite des DLR diskutieren.

War es hilfreich?

Lösung

Leider gibt es keine harte und schnelle Antwort auf diese Frage. Leistung sogar die gleiche Sprache hängt von einer Reihe von Parametern stark basiert.

Ja, in Allgemein VB.Net und C # wird schneller als DLR-basierte Sprachen sein. Statische Sprachen tun mehr Arbeit bei der Kompilierung wie Verfahren bindend. Diese Art von Arbeit muss zur Laufzeit für die DLR-basierte Sprachen durchgeführt werden und daher haben sie ein bisschen mehr Kosten zur Laufzeit.

Allerdings viel Arbeit geht in die DLR und DLR-basierten Sprachen zu optimieren. Ein großer Teil dieser Arbeit wird von verschiedenen Caches gemildert und so weiter. Bei vielen Arten von Anwendungen wird der Performance-Unterschied vernachlässigbar sein.

würde ich auf die Leistung nicht eine DLR-basierte Sprache basiert ausschließlich ausschließen, es sei denn ein Profiler mir gesagt, es war tatsächlich ein Problem.

Andere Tipps

Normalerweise ein Algorithmus Optimierung wird in einer statischen Sprache eine viel größere Wirkung hat als neu zu schreiben.

Vielleicht haben Sie Interesse an # 429 von .NET Rock zeigen, ein Interview mit Michael Foord. Hier ist ein relevanter Ausschnitt aus der Transkript :

  

Dynamische Sprachen sind viel einfacher zu   Test, sie sind wirklich geeignet für die   Test Driven Development -Ansatz   Die Entwickler wurden, dass die Einnahme   Zeit. Aber ich davon aus, dass für   Performance-Gründen, würden sie   in C # zu einem bestimmten Zeitpunkt neu zu schreiben, und   dann drei und ein bisschen Jahre später wir   bekam 40.000 Zeilen Code Ironpython,   wir haben über 140.000 Zeilen in einem bekam   Test-Code, haben wir eine Art von bekam   etwa 300 Zeilen C # und jedes Mal,   sie kommen bei der Aufführung zu sehen,   jedes Mal, wenn sie kommen und sagte lokalisieren   ein Vorgang, der ist nicht schnell arbeiten   genug, wir haben es geschafft, das bekommen   Geschwindigkeit, die wir brauchen, um unsere durch die Verbesserung der   Algorithmen, durch unseren Python zu verbessern   Code ist und nicht in C # fallen,   und die Gründe Programme laufen langsam   in der Regel nicht die Schuld der Sprache,   es ist der Fehler des Programmierers, die   Entwickler.

Auch Sie könnten Boo verwenden. Hier ist ein Beispiel Silverlight Tetris mit boo

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top