.exe bei C++ größer ?
-
Es ist eine etwas groessere runtime.
Allerdings nimmt der Speicher nicht proportional zu und bei richtigen Projekten sind die Binaries haeufig das kleinste daran.
-
Jop, die runtime (also das was printf/cout etc. implementiert) ist deutlich groesser bei C++.
-
Dazu kommt ggf. noch haufenweise Tabellen für virtuelle Funktionen, RTTI und Exceptionhandling.
-
Ok, danke, dann bin ich ja beruhigt
-
Es ist auch in C++ möglich, das abzustellen, wenn du wirklich willst.
-
Wie meinst du das jetzt ? Die Optimierungstufe hochdrehen ?
-
Nathan schrieb:
Dazu kommt ggf. noch haufenweise Tabellen für virtuelle Funktionen, RTTI und Exceptionhandling.
Ich glaub dass Templateverwendung mehr reinhaut
mem schrieb:
Wie meinst du das jetzt ? Die Optimierungstufe hochdrehen ?
Ich glaube es war eher gemeint Exceptionhandling und RTTI abzudrehen. Gibt C++ Compiler wo das geht.
Und natürlich keine Klassen mit virtuellen Funktionen schreiben.
-
Nathan schrieb:
Dazu kommt ggf. noch haufenweise Tabellen für virtuelle Funktionen, RTTI und Exceptionhandling.
Tabellen für virtuelle Funktionen hat man nur wenn man virtuelle Funktionen nutzt. Die nutzt man nur, wenn man das braucht. In C müsste man sich da auch Code für einfallen lassen um etwas vergleichbares zu realisieren.
Bei Exeptions sieht es etwas anders aus. Das kann das Executable schon mal gut 20% größer machen nur dadurch das Exections eingeschaltet sind. Abhilfe bietet seit C++11 noexept.
-
Auch mit C++ kann man extrem kleine *.exe erzeugen, aber nicht mit den Default-Einstellungen. Eine Minimalexe ist dann so im Dreh von 2kb.
-
Es kommt auch entscheidend auf die verwendete Implementierung der Standardbibliothek an. Gerade die Libstdc++ hat einen großen Platzbedarf, wenn man sie statisch linkt. Es gibt auch sehr auf Größe optimierte Implementierungen insbesondere für embedded Geräte.
-
Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
TNA schrieb:
Es kommt auch entscheidend auf die verwendete Implementierung der Standardbibliothek an. Gerade die Libstdc++ hat einen großen Platzbedarf, wenn man sie statisch linkt. Es gibt auch sehr auf Größe optimierte Implementierungen insbesondere für embedded Geräte.
Natuerlich, aber fuer eine richtig kleine exe laesst man die ja ehh weg.