Seite 1 von 2

PB, Module und .exe - Grössen

Verfasst: 25.08.2013 06:48
von Bisonte
Hallo.

Ich dachte so bei mir, Module... cool, kann ich aus meinen Userlibs ein Modul basteln.
Soweit so gut. Allerdings mit einem kleinen Haken:

Module scheinen immer komplett mitkompiliert zu werden, egal ob die Funktionen aufgerufen
werden oder nicht. Anders als ohne Module.

Probiert doch mal aus, ein grosses Modul zu nehmen und nur eine Funktion zu nutzen.
Danach dass ganze mit dem gleichen Code, nur ohne Module. Der Groessenunterschied
der Kompilate ist doch extrem.

Also ist es doch sinnvoller entweder viele kleine Module (wenn sie gebraucht werden)
zu inkludieren oder weiterhin Userlibs zu generieren, als ein grosses allumfassendes
Modul, wenn man keine aufgeblähten Kompilate wünscht.

Ist euch das auch aufgefallen ?

Re: PB, Module und .exe - Grössen

Verfasst: 25.08.2013 10:59
von RSBasic
Ich möchte es jetzt nicht selber erstellen und testen, aber wie lauten die Größen?

Re: PB, Module und .exe - Grössen

Verfasst: 25.08.2013 11:21
von ts-soft
RSBasic hat geschrieben:Ich möchte es jetzt nicht selber erstellen und testen, aber wie lauten die Größen?
90 - 60 - 90 :mrgreen:

Re: PB, Module und .exe - Grössen

Verfasst: 25.08.2013 11:27
von 7x7
ts-soft hat geschrieben:90 - 60 - 90 :mrgreen:
Wie?? Kennst du DIE auch? :mrgreen:

Re: PB, Module und .exe - Grössen

Verfasst: 25.08.2013 13:44
von Bisonte
RSBasic hat geschrieben:Ich möchte es jetzt nicht selber erstellen und testen, aber wie lauten die Größen?
Ich meine :

Der Aufruf MessageRequester("Info", Common::GetIPAdress("purebasic.fr")) soll das ganze Programm sein.


Wenn ich "Modul Common" inkludiere wird die Exe 210KB gross...
Wenn das ganze was im "Modul Common" steht, ohne das Modulfeature nutze, Exe = 24KB

Beide "includes" haben beinahe die gleiche Zeilenzahl als Source.

Also wird wohl Declare innerhalb des DeclareModule - Blocks dafür sorgen, dass der Compiler alles kompiliert, und nicht nur das, was auch aufgerufen wird.

Re: PB, Module und .exe - Grössen

Verfasst: 25.08.2013 13:52
von RSBasic
Hm und wie hoch ist jeweils der Speicherverbrauch?

Re: PB, Module und .exe - Grössen

Verfasst: 25.08.2013 13:53
von PMV
Bisonte hat geschrieben:Also ist es doch sinnvoller entweder viele kleine Module (wenn sie gebraucht werden)
zu inkludieren oder weiterhin Userlibs zu generieren, als ein grosses allumfassendes
Modul, wenn man keine aufgeblähten Kompilate wünscht.
Module machen nur Sinn, wenn sie Codeblöcke sinnvoll kapseln. Riesen große
Module mit tausenden von Funktionen sind genau so problematisch wie hunderte
Module mit ein oder zwei Funktionen. :wink:

Mal davon abgesehen spielt für 99% von uns die Größe der EXE keine Rolle.
Wenn dir das aber so wichtig ist, dann sollteste das als Feature-Request
(oder Bug Report :? ) im englischen Forum mal posten und schauen,
was draus wird. :wink:

MFG PMV

Re: PB, Module und .exe - Grössen

Verfasst: 25.08.2013 14:20
von Bisonte
Ich wollte ja nur darauf aufmerksam machen ;)

Mir ist das auch schnuppe ob ich einen "Overhead" von 1MB oder 10 MB produziere...
Immer noch bei weitem weniger als das ganze .NET Gebrummsel :mrgreen:

Re: PB, Module und .exe - Grössen

Verfasst: 26.08.2013 08:42
von tft
Hallo,

hin hinblick auf die sonstige Strategie von PB ..... eher ein Rückschritt. Eine Info die nicht Mega
wichtig ist. Aber gut zu wissen das mit Module die zeiten der kleinen Exe vorbei sind. Denn Module
sind schon nicht ganz unpraktisch.

Gruss TFT

Re: PB, Module und .exe - Grössen

Verfasst: 27.08.2013 00:40
von PMV
Stark ausgesiebt hat PB noch nie. Hat Prozedur A die Prozedur B aufgerufen,
wird Prozedur B bereits mit gelinkt, obwohl Prozedur A gar nicht verwendet wird.
Soweit zumindest mein Wissen diesbezüglich ...
Vermutlich wird ein Modul komplett eingebunden, sobald nur eine Funktion
daraus aufgerufen wurde. So lange das Thema aber keiner im englischen
Forum anspricht, wird sich hier wohl nur einfach jeder ins leere beschweren
und so Halbwissen wie meines ansammeln. :mrgreen:

MFG PMV