🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #134

Re: Hello World - warum so gross?

#134
From: Ullrich von Bassewitz
Date: Mon, 14 Aug 1995 10:10
44 lines
2437 bytes
Joerg Pleumann (sa021pl@unidui.uni-duisburg.de) wrote:
> Wie kommen diese Code-Groessen zustande? Ist das etwa normal fuer C? Dann
> kann ich ja gleich in Visual Basic programmieren und immer eine 5 MB DLL
> zu meinen Programmen dazugeben. Oder verhaelt sich nur GNU C so? Oder mache
> ich irgendwas falsch, gibt's da einen Parameter -SMALLEXE, den ich noch
> nicht entdeckt habe? :-)

C bzw. der dafuer verwendete, "normale" Linker ist nicht besonders gut im
aussortieren von Code der nicht benoetigt wird. Wenn der Linker eine Referenz
in ein Object File findet, dann wird der gesamte Inhalt des Object Files zum
Executable hinzugelinkt, ohne weitere Pruefungen, ob vielleicht nur eine der
drei darin enthaltenen Funktionen benoetigt wird.

Der Effekt gibt sich etwas mit groesseren Programmen, da dann die Wahrschein-
lichkeit gross ist, dass Du mehr als eine Routine aus einem Object File
tatsaechlich nutzt. D.h. die Executables werden nicht in demselben Masse
groesser wie Deine Quellen.

Was noch dazu kommt ist, dass GNU-C im Vergleich zu anderen Compilern recht
umfangreichen (aber auch schnellen) Code erzeugt. Damit Du Dir vorstellen
kannst, in welchem Umfang sich die Compiler hier unterscheiden mal die
Groesse ein und desselben Programms auf den unterschiedlichen Plattformen:

	Linux (Compiler: gcc)		484356
	OS/2 (Compiler: Watcom)		308352
	DOS (Compiler: Watcom)		372940

Alle Programme sind statisch gelinkt und entstehen bis auf ein paar Routinen
zum Bildschirm/Tastatur I/O aus denselben Sourcen. Inwiefern die Groesse vom
Format des Executables abhaengt (DOS: EXE, OS/2: LX, Linux: a.out) ist mir
nicht klar, ich denke aber, dass sich die grossen Unterschiede dadurch nicht
erklaeren lassen.

Wahrscheinlich musst Du mit dem Speicherbedarf einfach leben (vielleicht noch
etwas RAM nachstecken).

Gruss


	Uz


-- 
Ullrich von Bassewitz                              uz@ibb.schwaben.com
Technical Details
Message-ID: <DDApM3.7ou@wuschel.ibb.schwaben.com>
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!uz
References: <YrjLwYkkusiW084yn@unidui.uni-duisburg.de>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++,de.comp.lang.c
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!uz
From: uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz)
Subject: Re: Hello World - warum so gross?
Followup-To: de.comp.lang.c++,de.comp.lang.c
X-Newsreader: TIN [version 1.2 PL2]
Reply-To: uz@ibb.schwaben.com
Organization: Ingenieurbuero von Bassewitz
Message-ID: <DDApM3.7ou@wuschel.ibb.schwaben.com>
References: <YrjLwYkkusiW084yn@unidui.uni-duisburg.de>
Date: Mon, 14 Aug 1995 10:10:50 GMT