Frage

Das Schreiben schnell native Anwendungen, mit API-Aufrufen und usw., in einer modernen Cross-Plattform-Programmiersprache wie C # genial wäre, wäre es nicht? Wenn Sie zum Beispiel IT-Mitarbeiter für die Unterstützung bei der Installation der Dinge ein einfaches Programm schreiben wollen, die anderen Komponenten nicht brauchen würde, in ein einfachen und modernen Programmiersprache? oder wenn Sie ein 3D-Spiel schreiben wollen, sollte es schnell sein, und JIT würde nur macht es langsamer ...

Warum, warum ist es nicht möglich? Warum gibt es keine einheimischen modernen Programmiersprachen für diese Dinge?

War es hilfreich?

Lösung

C # und .Net ist nativen Code. Ich denke, dass Sie die Zitter falsch verstehen. Es ist nicht eine VM. Ein C # -Programm wird kompilierten Code vollständig nativen, bevor irgendetwas davon ausgeführt wird.

Nun wird der „benötigt andere Komponenten“ Teil ist ein Anliegen. Geben Sie ihm Zeit, though. Sie werden sich schwer tun, in diesen Tagen ohne mindestens 2,0 .Net eine Windows-Installation zu finden, und sogar ein paar Mainstream Linux-Distributionen enthalten Mono aus der Box.

Andere Tipps

Gehen Sie nicht davon die JIT Dinge langsamer macht. Der JIT kann für die genauen Computer optimiert die Anwendung ausgeführt wird, anstatt ein generischen Computer wie ein 386 oder Pentium. Es kann sogar eine bessere Geschwindigkeit / Speicher-Trade-off Entscheidungen treffen, wenn der Code zu erzeugen, weil sie genau weiß, was verfügbar ist. Und wenn JIT noch Dinge macht langsamer, man kann sie ngen so dass JITting alle vorher getan wird.

Als Beweis dafür, betrachtet, dass Quake hat auf die CLR portiert ein paar mal, und in meinem persönlichen Tests haben die Frames pro Sekunde gewesen schneller , wenn Quake auf dem CLR läuft etwa die Hälfte der Zeit ich Demo es.

Zusammengestellt .NET-Programme wurden ebenso schnell wie C gezeigt laufen Wenn Sie es ultra-schlanke wollen schreiben sie in der Montage für den nativen Prozessor.

Sie können das Microsoft Ngen.exe Tool eine native Bild einer .NET-Assembly erstellen. Siehe MSDN NGEN Dokumentation . Microsoft bereits obwohl über das, was Sie hier sind immer.

Microsoft macht auch ILMerge. EXE Werkzeug mehrere Montage Dateien in eine verschmelzen. Dies könnte auf die Optimierung angrenzen und zu beschleunigen.

Als Randbemerkung, hat Mono voll vor der Zeit kompilieren, die Laufzeit zu beseitigen. (Ich denke, das ist, wie sie weg auf dem iPhone laufen, die jede JIT verbietet.)

Also, bedeutet dies, dass wir voll und ganz zusammenstellen könnte und verknüpfen Sie ein C # Programm (begrenzt) .NET ruft in eine eigenständige EXE, die überhaupt ohne .NET wird installiert?

laufen würde

Zur Info:. Überprüfen eines Serverbestand von rund 5000 Servern etwa 200, ohne auch nur .NET 2.0 enthüllt

Dies verursacht Probleme für Code, der auf „alle Windows-Instanzen“ ausgeführt werden muss. Mit .NET 4.0 + 2.0 nicht einschließlich bekommt dies schlimmer als neue und alte Maschinen unter Windows möglicherweise nicht die ‚richtigen‘ haben .NET

da ist, kann C. C eine beliebige Anwendung schreiben verwendet werden, je !!!

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