modern-languages

___ qstnhdr ___ C # ohne .NET Framework ___ qstntxt ___

Das Schreiben schneller nativer Anwendungen mit API-Aufrufen usw. in einer modernen plattformübergreifenden Programmiersprache wie C # wäre großartig, oder? Zum Beispiel, wenn Sie ein einfaches Hilfsprogramm schreiben möchten, um IT-Benutzern zu helfen, Dinge zu installieren, die keine anderen Komponenten benötigen, in einer einfachen und modernen Programmiersprache? oder wenn Sie ein 3D-Spiel schreiben möchten, sollte es schnell sein, und JIT würde es nur langsamer machen ...

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

    
___ answer1616782 ___

Kompilierte .NET-Programme laufen nachweislich genauso schnell wie C. Wenn Sie Ultra-lean schreiben wollen, schreiben Sie es in Assembly für Ihren nativen Prozessor.

    
___ answer1616795 ___

Gehen Sie nicht davon aus, dass der JIT die Dinge langsamer macht. Das JIT kann für den exakten Computer optimieren, der die Anwendung ausführt, und nicht für einen generischen Computer wie 386 oder Pentium. Bei der Codeerstellung können sogar bessere Kompromisse bei Geschwindigkeit und Speicherabwägung getroffen werden, da genau bekannt ist, was verfügbar ist. Und wenn JIT die Dinge immer noch langsamer macht, können Sie sie NENNEN, so dass JITTING alles vorher erledigt wird.

Bedenkt das als Beweis dafür, Quake wurde mehrmals in die CLR portiert , und in meinen persönlichen Tests waren die Frames pro Sekunde schneller , wenn Quake etwa zur Hälfte der Demo-Zeit läuft.

    
___ answer16219820 ___

Bedeutet dies also, dass wir ein C # -Programm vollständig kompilieren und verknüpfen können, indem Sie (begrenzte) .NET-Aufrufe in eine eigenständige EXE-Datei einfügen, die ohne .NET läuft?

Zu Ihrer Information: Bei der Überprüfung eines Serverstandes von etwa 5000 Servern wurden etwa 200 ohne .NET 2.0 gefunden.

Dies verursacht Probleme für Code, der auf "allen Windows-Instanzen" ausgeführt werden muss. Mit .NET 4.0 und nicht mit 2.0 wird dies noch schlimmer, da sowohl neue als auch alte Windows-Rechner möglicherweise nicht das "richtige" .NET haben     

___ answer1623950 ___

Als eine Randnotiz hat Mono das Compilieren vor der Zeit voll im Griff und eliminiert die Laufzeit. (Ich denke, dass sie so auf dem iPhone laufen, was JIT verbietet.)

    
___ answer1616792 ___

Sie können das Microsoft NGEN.EXE-Tool verwenden, um ein systemeigenes Abbild einer .NET-Assembly zu erstellen. Siehe MSDN NGEN-Dokumentation . Microsoft hat schon darüber nachgedacht, worauf du hier hinauskommst.

Microsoft macht auch ILMERGE.EXE-Tool um mehrere Assembly-Dateien zu einer zusammenzufassen. Dies könnte auch an Optimierung und Geschwindigkeit anknüpfen.

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ answer1616774 ___

gibt es, C. C kann verwendet werden, um jede Anwendung zu schreiben, immer !!!

    
___ tag123programminglanguages ​​___ Eine Programmiersprache ist eine künstliche Sprache, die entworfen wurde, um Berechnungen auszudrücken, die von einer Maschine ausgeführt werden können. ** Bitte beachten Sie: ** Wie anderswo auf Stack Overflow, Ressourcen- und Tutorial-Empfehlungsanfragen, Anfragen nach Listen von Dingen ("welche Sprachen haben diese Funktion ...") und übermäßig meinungsbasiert ("Was ist das Beste? ... ") Fragen sind nicht Thema. ___ tag123native ___ Eine Anwendung, die in der Computerumgebung (Maschinensprache und Betriebssystem) ausgeführt wird, auf die verwiesen wird. Der Begriff wird verwendet, um eine native Anwendung mit einer interpretierten wie einer Java-Anwendung, die nicht nativ auf einer einzelnen Plattform ist, zu vergleichen. ___ tag123modernlanguages ​​___ hilf uns dieses Wiki zu bearbeiten ___ tag123jit ___ Just-In-Time-Compilierung (JIT) ist eine Technik, die verwendet wird, um die Leistung von interpretiertem Code zu verbessern, indem sie in Maschinencode übersetzt wird. ___ answer1616778 ___

C # und .Net sind nativer Code. Ich glaube, du verstehst das JITter falsch. Es ist keine VM. Ein C # -Programm wird vollständig in nativen Code kompiliert, bevor einer davon ausgeführt wird.

Jetzt ist der Teil "andere Komponenten benötigen" ein Problem. Gib es doch Zeit. Sie werden schwer zu finden, eine Windows-Installation in diesen Tagen ohne mindestens. NET 2.0, und sogar ein paar Mainstream-Linux-Distributionen enthalten mono out of the box.

    
___
7
Antworten

C # ohne .NET Framework

Das Schreiben schneller nativer Anwendungen mit API-Aufrufen usw. in einer modernen plattformübergreifenden Programmiersprache wie C # wäre großartig, oder? Zum Beispiel, wenn Sie ein einfaches Hilfsprogramm schreiben möchten, um IT-Benutzern zu...
24.10.2009, 02:39