Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
1 - Einsteigerfragen

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Neuerer Beitrag  |  Älteres Thema 
 Eine compilierte Datei (Exe) verkleinern.
Autor: peter (---.002.202.pools.vodafone-ip.de)
Datum:   02.01.22 15:54

Hallo, guten Tag.
Wie kann man bitte eine Exe die von ProfanX4 erstellt wurde verkleinern?
Die ist bei mir immer ca 1,5mb groß.

Danke.

Beitrag beantworten
 
 Re: Eine compilierte Datei (Exe) verkleinern.
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   02.01.22 16:27

Die fertigen Programme sind eh nicht groß. Oder
arbeitest du noch mit Disketten ?

Früher hatte ich gerne UPX dafür genommen.
Da konnte man aber nur die Prfrun32.exe, die beim
Compilieren dazu gelinkt wird, verkleinern. Das bringt
aber nicht sehr viel.

Bei Version X4 brauchst du das aber erst gar nicht probieren
(hab es gerade selber getestet). Das geht deshalb nicht, weil
die Runtime (Prfrun32.exe) ab Version X4 als Ressource dazu
gelinkt wird. Außerdem gehen die Resourcen, wie Icons,
Bitmaps wie Toolbar32 usw. flöten.

Wenn es denn unbedingt sein muß :
Bearbeite die Prfrun32.exe mit dem ResHacker. Dort wirfst
du dann alle nicht gebrauchten Ressourcen wie Toolbar und Icons
usw. raus und speicherst sie als neue Version wieder. Aber beachten,
was für Ressourcen das sind. Da mußt du in deinem Quellcode
nachschauen, ob da nicht irgendwo ein Icon (UseIcon, DrawIcon) o.ä.
aufgerufen wird.

Und sichere vor allem erstmal die original Prfrun32.exe, damit du sie
bei Nichtfunktionen wieder zurückholen (kopieren) kannst.

H.Brill
XProfan X4 + FreeProfan

Nachricht bearbeitet (02.01.22 16:31)

Beitrag beantworten
 
 Re: Eine compilierte Datei (Exe) verkleinern.
Autor: peter (---.002.202.pools.vodafone-ip.de)
Datum:   02.01.22 16:35

Danke für die Info.

----------------------------
PRINT "hallo"
----------------------------
ist als Exe 1,5MB.

Ich dachte da gibt es eine Runtime , die man benutzen kann für alle Programme.

Gruss



Nachricht bearbeitet (02.01.22 17:07)

Beitrag beantworten
 
 Re: Eine compilierte Datei (Exe) verkleinern.
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   02.01.22 17:21

In der Runtime ist halt alles drin. Früher, in VisualBasic
war das die VBRUNXX.DLL, die man mitliefern mußte.

Wie schon gesagt, alles unnötige mit ResHacker rauswerfen,
in einem extra Ordner speichern und mit $R die verkleinerte
Runtime verwenden.

Das ganze hat ja auch was für sich. Man braucht etwaige Toolbars
und Icons nicht extra mitzugeben, wenn man halt die eingebauten
verwendet.
Seit es die Ressourcen-Funktionen und $RES gibt, bräuchte man
so manches nicht mehr in der Runtime. Ist aber so einfacher
(siehe z.B. DrawIcon) und Dateigrößen spielen heutzutage keine
Rolle mehr.

Das ist halt der Unterschied zu einem echten Compiler / Linker.

PS:
Ich hab es mal jetzt mit dem ResHacker ausprobiert.
Wenn ich die Toolbars und unnötigen Icons alle lösche, macht
das in der Größe nur etwa 150 KB aus. Also kaum der Rede wert.

H.Brill
XProfan X4 + FreeProfan

Nachricht bearbeitet (02.01.22 17:32)

Beitrag beantworten
 
 Re: Eine compilierte Datei (Exe) verkleinern.
Autor: peter (---.pools.arcor-ip.net)
Datum:   03.01.22 08:54

Nach dem Motto : Finger wech... vom zerhacken.

Danke.
Gruss

Beitrag beantworten
 
 Re: Eine compilierte Datei (Exe) verkleinern.
Autor: Sven Bader (---.versanet.de)
Datum:   13.01.22 17:57

Auch wenn 1,5 MB nicht viel sind, habe ich häufig das Bedürfnis die Programme kleiner zu bekommen. Vielleicht aus ästhetischen Gründen oder weils früher mal viel war ;-)

-Erste Anlaufstelle ist der Reshacker, wie schon zuvor genannt.
-Es kann auch eine alternative XProfan Version helfen, zum Beispiel die kostenlose 11er Version, die ist zudem auch 2-3x schneller und eben kleiner
-Ich verwende Profan2CPP, die daraus in Borland oder Visual CPP generierten Programme sind ca 400 KB groß inkl. einem 48x48px RGBA Icon

Die Allzweckwaffe ist jedoch UPX, damit lässt sich jede EXE Datei schrumpfen. Ich meine es funktioniert, indem dem Programm ein Entpacker vorgeschaltet wird, die Verzögerung dadurch liegt im nicht wahrnhembaren Bereich. Ressourcen werden dabei nicht verändert.
https://upx.github.io/ oder hier mit User Interface https://www.novirusthanks.org/products/upx-easy-gui/

Die Kombination von Profan2CPP und UPX kommt auf ca. 200 KB

Beitrag beantworten
 
 Re: Eine compilierte Datei (Exe) verkleinern.
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   14.01.22 07:41

Früher, als USB-Sticks erst am Anfang waren, auch noch
recht teuer waren und jeder PC noch ein Diskettenlaufwerk
hatte, war das schon interessant. Gerade bei dem Sprung
von Profan Version 11 zu den X-Versionen (X2, X3) wurden
die Runtimes auch etwas größer, sodaß u. U. das compilierte
Programm nicht mehr auf Diskette paßte.

Hier mal die verschiedenen Größen der Prfrun32.exe

Zitat:


Version 11 - 1.032 KB
Version X2 - 1.309 KB
Version X3 - 1.356 KB
Version X4 - 1.621 KB


Also, da war bis X2 gerade so die Grenze für eine Diskette. Bei X2
mußte man ggf. noch ein paar Bitmaps und Icon mit dem Reshacker
raus nehmen. Bei X3 mußte man schon mit dem UPX arbeiten, wenn
man die Bmp und Icons brauchte, bzw. längerer Quelltext vorhanden
war.

In der heutigen Zeit sehe ich das nicht mehr so. Wenn man dann
noch bedenkt, was für Rattenschwänze so manch andere Programmier-
sprache nach sich zieht, ist das von XProfan recht wenig. Beisielsweise
sei hier mal VB.Net genannt. Das VB - NET Framework mußte man bis
Windowsversion 7 (glaube ich) separat nachinstallieren, um eine .Net
Anwendung laufen zu lassen.

Das ist halt bei XProfan anders nicht oder sehr schwer machbar.
Je größer der Funktionsumfang, desto größer die Runtime. XProfan
schleppt halt alles huckepack mit. Eine ähnliche Diskussion hatte
ich schon mal mit Roland geführt. Mein Vorschlag damals war, nur
die Grundfunktionen in der Runtime/Interpreter zu lassen und alles
andere per Library (.lib oder vorcompilierter Unit) beim Erzeugen des Programmes nach Bedarf einzubauen. Rausnehmen könnte man alles
nicht Notwendige bzw. nicht oft Gebrauchte : dBase-Funktionen, JSON, Serielle Schnittstelle, File - IO usw. Dieses Prinzip sieht man ja auch
oft bei anderen Sprachen.

Sowas wäre ja auch viel wartungsfreundlicher. Statt Änderungen
bestehender Funktionen in Interpreter und Runtime nachzubessern,
was u. U. auch fehlerträchtig sein kann, könnten die Änderungen
oder auch neue Funktionen für diesen Bereich, einfach in den Modulen
(Libs) gemacht werden. Dann bräuchten auch nur diese nachgereicht zu
werden.

Aber das war damals nur so ein Vorschlag. Das umzusetzen, wäre ja
auch noch sehr arbeitsintensiv.

H.Brill
XProfan X4 + FreeProfan

Nachricht bearbeitet (14.01.22 07:45)

Beitrag beantworten
 
 Re: Eine compilierte Datei (Exe) verkleinern.
Autor: peter (---.pools.arcor-ip.net)
Datum:   14.01.22 14:08

Wenn ich von Profan eine EXE von Profan11 starte und von XProfanx4 dann merkt man den Unterschied. Es ist nicht die Größe die Stört sondern die Trägheit die beim Starten zunimmt. Das ist nicht gut gemacht vom Hersteller.
Merkt man sogar bei 3GHz. Erst wenn das Programm im Computer bleibt dann ist es schneller , das ist aber nicht derSinn.

Kannst das ja mal Testen.

Gruss

Beitrag beantworten
 
 Re: Eine compilierte Datei (Exe) verkleinern.
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   14.01.22 15:26

Das ist halt der Nachteil, wenn eine Runtime erst geladen
werden muß. Je größer, desto längere Ladezeit.

H.Brill
XProfan X4 + FreeProfan

Beitrag beantworten
 Foren-Liste  |  Baumstruktur   Neuerer Beitrag  |  Älteres Thema 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org