Lohnt sich C für Programme für Windows
-
Hallo,
da ich zurzeit einige kleine Tools schreibe, die wir brauchen, um bestimmte Dateien zu konvertieren, würde mich interessieren, ob C auf einem Windows PC noch wirkliche Geschwindigkeitsvorteile zu C++ bietet, oder ob der C++ Compiler mittlerweile so gut ist, dass man für Windows PCs direkt C++ benutzen kann.
Zum Beispiel indem ich die stdio Bibliothek (fopen(), fread(), ...) anstatt der ifstream Bibliothek benutze.
C ist natürlich sicher kompakter und daher wichtig für den Embedded Bereich, aber bei einem PC kommt es ja nicht so sehr darauf an, wie groß die .exe am Ende ist, oder wie viel Platz im RAM verbraucht wird. Mich interessiert eigentlich nur die Geschwindigkeit.
Es kommt mir jetzt nicht auf einstellige Prozentpunkte an.
Danke!
Gruß
Shinzo
-
Mit dem Compiler hat es schonmal kaum was bzw. nix zu tun.
Wenn du das selbe Programm einmal mit einem C Compiler übersetzt und dann mit einem - vergleichbar guten - C++ Compiler, dann werden die hübsch gleich schnell sein.Was die File Funktionen angeht: mir wäre keine C++ Iostreams Implementierung bekannt, die eine durchschnittliche bis gute C FILE* Implementierung abhängen könnte. Nichtmal wenn man weiss wie man Iostreams verwenden muss/kann/sollte damit der Code nicht unnötig langsam wird.
-
Dass so ein unsinnige Frage überhaupt gestellt wird ist mir unbegreiflich...
Es sind ja Weihnachtsferien, also nimm dir ruhig die Zeit an einem Programm 4 mal so lange zu programmieren, damit es dann später 400 μs schneller läuft...
Gleicher Sachverhalt gilt übrigens auch für asm <-> C, C <-> C++, C++ <-> C#, C++ <-> Java, C++ <-> Ruby, etc. etc.
-
BierzeltOmi schrieb:
Dass so ein unsinnige Frage überhaupt gestellt wird ist mir unbegreiflich...
Es sind ja Weihnachtsferien, also nimm dir ruhig die Zeit an einem Programm 4 mal so lange zu programmieren, damit es dann später 400 μs schneller läuft...
Gleicher Sachverhalt gilt übrigens auch für asm <-> C, C <-> C++, C++ <-> C#, C++ <-> Java, C++ <-> Ruby, etc. etc.nicht jedes programm wird nach der ersten verwendung entsorgt. da lohnt sich das dann schon...
-
BierzeltOmi schrieb:
Dass so ein unsinnige Frage überhaupt gestellt wird ist mir unbegreiflich...
Es sind ja Weihnachtsferien, also nimm dir ruhig die Zeit an einem Programm 4 mal so lange zu programmieren, damit es dann später 400 μs schneller läuft...
Gleicher Sachverhalt gilt übrigens auch für asm <-> C, C <-> C++, C++ <-> C#, C++ <-> Java, C++ <-> Ruby, etc. etc.Was immer wieder vergessen wird ist dass auch 400μs mehr Gewschwindigkeit eine ganze Menge Performance ausmachen kann wenn die Stelle oft genug genutzt wird. Nicht umsonst kommt auch heute nicht um ASM rum wenn man wirklich in der obersten Liga der Implementierungen mitspielen möchte z.B. Grafik, Video, Verschlüsselung, Mustererkennung in bewegten Bildern, Echzeitaudio, Komplexe Editoren mit aufwendigen GUI Objekten, Treiber, Tools, eigene kleine DB und so weiter und so fort. Es gibt so viele Sachen wo ein immer wieder einen Flaschenhals gibt und da zählen dann auch mikrosekunden Vorteile extrem.
-
Nicht umsonst kommt auch heute nicht um ASM rum wenn man wirklich in der obersten Liga der Implementierungen mitspielen möchte z.B. Grafik, Video, Verschlüsselung, Mustererkennung in bewegten Bildern, Echzeitaudio, Komplexe Editoren mit aufwendigen GUI Objekten, Treiber, Tools, eigene kleine DB und so weiter und so fort.
Au weia, was für ein Unsinn.