PB, Module und .exe - Grössen
PB, Module und .exe - Grössen
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 ?
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 ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: PB, Module und .exe - Grössen
Ich möchte es jetzt nicht selber erstellen und testen, aber wie lauten die Größen?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: PB, Module und .exe - Grössen
90 - 60 - 90RSBasic hat geschrieben:Ich möchte es jetzt nicht selber erstellen und testen, aber wie lauten die Größen?

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: PB, Module und .exe - Grössen
Wie?? Kennst du DIE auch?ts-soft hat geschrieben:90 - 60 - 90

- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
- unkommentierter Quellcode = unqualifizierter Müll
Re: PB, Module und .exe - Grössen
Ich meine :RSBasic hat geschrieben:Ich möchte es jetzt nicht selber erstellen und testen, aber wie lauten die Größen?
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.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: PB, Module und .exe - Grössen
Hm und wie hoch ist jeweils der Speicherverbrauch?
Re: PB, Module und .exe - Grössen
Module machen nur Sinn, wenn sie Codeblöcke sinnvoll kapseln. Riesen großeBisonte 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 mit tausenden von Funktionen sind genau so problematisch wie hunderte
Module mit ein oder zwei Funktionen.

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

was draus wird.

MFG PMV
Re: PB, Module und .exe - Grössen
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

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

PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- tft
- Beiträge: 650
- Registriert: 08.09.2004 20:18
- Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
- Wohnort: Dachsen
- Kontaktdaten:
Re: PB, Module und .exe - Grössen
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
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
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler

Re: PB, Module und .exe - Grössen
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.
MFG PMV
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.

MFG PMV