AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Warum sind *.exe's so groß

Ein Thema von thepaul · begonnen am 23. Jan 2005 · letzter Beitrag vom 26. Jan 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von thepaul
thepaul

Registriert seit: 7. Nov 2004
Ort: Jena
63 Beiträge
 
Delphi 7 Personal
 
#1

Warum sind *.exe's so groß

  Alt 23. Jan 2005, 16:32
Hi,

beim Borland Compiler ist doch immer von sehr kompakten Programmen die Rede. Wenn ich aber meine Programme erstelle, kann ich meistens mit einer ZIP-Komprimierung bis zu 50% Größe einsparen.

Han ich da was falsch eingestellt oder sind die Progs doch nicht sooooooo kompakt?

MfG Paul
Paul
Mosaic.net - Open Source Mosaik Creator in C#
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#2

Re: Warum sind *.exe's so groß

  Alt 23. Jan 2005, 16:38
Du hast alles richtig gemacht. Es müssen nur jede Menge an Laufzeit-Krams mitgegeben werden . Normalerweise wird das halt mit in die EXE geschoben, daher auch die Größe.
Bei VB ist das z.B. nicht anders, nur wird das nicht in die EXE geschrieben...
Aber ich will da gar nicht so genau drauf eingehen, da wir das schon öfter hatten

PS: Aber ein Tipp noch: Wenn du kleine Anwendungen schreiben will, dann gibt es 2 Möglichkeiten. Du kannst einmal so Programmieren´, dass du auf die VCL/CLX verzichtet und alles selber übernimmst (Hier im Forum suchennonVCL) oder aber, du kannst mit .NET arbeiten. Da sind die ausführbaren Dateien auch recht klein, aber man hat mit D2005 eine vernünftige IDE, die man auch voll ausreizen kann (mit nonVCL nicht möglich ).
Alexander
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Warum sind *.exe's so groß

  Alt 23. Jan 2005, 16:44
Falls du mehreren Echsen ausgeben willst, solltest du dich mal über RunTime-Packages schlau machen.
Dadurch kannst den Riesenbatzen, den die VCL und ein paar andere Packages ausmachen, auslagern. Dadurch musst du sie nur einmal ausliefern um sie in mehreren Echsen zu verwenden.
Nachtrag: Um den Effekt zu sehen musst du nur mal in den Projektoptionen unter Packages "build with runtime packges" aktivieren.
Deine Echse sollte jetzt nur noch ein paar Kilobyte groß sein.
Wenn du nur bestimmte Packages extern verklinken willst löschst du einfach allen anderen aus der Liste (der semikolongetrennte Text unten).
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Warum sind *.exe's so groß

  Alt 23. Jan 2005, 17:13
Zitat von Robert_G:
Nachtrag: Um den Effekt zu sehen musst du nur mal in den Projektoptionen unter Packages "build with runtime packges" aktivieren.
Deine Echse sollte jetzt nur noch ein paar Kilobyte groß sein.
Wenn du nur bestimmte Packages extern verklinken willst löschst du einfach allen anderen aus der Liste (der semikolongetrennte Text unten).
Ich habe das mal gemacht und es funktioniert wirklich, aber wie kann ich die packages "manuell" mit ausliefern, wenn ich jemandem die exe gebe?
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#5

Re: Warum sind *.exe's so groß

  Alt 23. Jan 2005, 17:49
Zitat von Nicolai1605:
Ich habe das mal gemacht und es funktioniert wirklich, aber wie kann ich die packages "manuell" mit ausliefern, wenn ich jemandem die exe gebe?
Indem du die Packes aus dem Systemverzeichnis (Endung .bpl) zusammensuchst, die benötigt werden. Inwiefern das Lizenzrechtlich wann und unter welchen Umständen bei welcher Mondphase erlaubt ist, weiß ich nicht.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Warum sind *.exe's so groß

  Alt 23. Jan 2005, 18:05
Zitat von Nicolai1605:
Zitat von Robert_G:
Nachtrag: Um den Effekt zu sehen musst du nur mal in den Projektoptionen unter Packages "build with runtime packges" aktivieren.
Deine Echse sollte jetzt nur noch ein paar Kilobyte groß sein.
Wenn du nur bestimmte Packages extern verklinken willst löschst du einfach allen anderen aus der Liste (der semikolongetrennte Text unten).
Ich habe das mal gemacht und es funktioniert wirklich, aber wie kann ich die packages "manuell" mit ausliefern, wenn ich jemandem die exe gebe?
Ich habe mir ein MergeModule mit allen Packages angelegt, die ich IMMER brauche.
Dann noch weitere MergeModule, die Projektbezogen sind.
Das ganze installiere ich in die Common Files (bzw. gemeinsame Dateien) in einen Unterordner. Außerdem füge ich der Umgebungsvariable %PATH% diesen Ordner hinzu.
Wenn ich jetzt ein SetUp erstelle muss ich nur noch die MergeModules hinzufügen und der Rest passiert dann von alleine.
Willst du es "zu Fuss" machen, dann lege einen Ordner (am besten in die common files) an und füge diesen zu %PATH% an. (also wie oben nur halt "zu Fuss" )
Dadurch kann deine Anwendung ganz normal starten. Ohne das die Packages im Anwendungsverzeichnis leigen müssen.

Das ganze ist vielleicht auch für die Hobbyprogrammierer praktisch, die ihre Anwendungen im Internet anbieten.
Ihr könntet einfach sagen das hier braucht ihr für meine Programme, und schon spart ihr Traffic (wenn ein User 2 Apps lädt muss er die Packages nur einmal laden )

@tl
Sinn und Zweck der Trennung von DesignTime & RunTime packages ab D6 war es, genau diese Streitigkeiten zu beseitigen.
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#7

Re: Warum sind *.exe's so groß

  Alt 23. Jan 2005, 18:12
Zitat von Robert_G:
@tl
Sinn und Zweck der Trennung von DesignTime & RunTime packages ab D6 war es, genau diese Streitigkeiten zu beseitigen.
Hmm...
Ich meinte jetzt eigentlich namentlich vclXX.bpl und rtlXX.bpl, denn die brauche ich, wenn die die Laufzeitpackages nicht in die EXE linke...
Wenn ich mich recht erinnere ging es bei den Streitigkeiten um die Klassen, die in designXXX.bpls zu finden sind, bzw alles, was sich in %DELPHI%/Bin an Packages befindet. However, brauchen tut man's trotzdem, ob in der EXE oder als Package anderswo, und damit sind wir wieder bei VisualBasic angelangt...
  Mit Zitat antworten Zitat
Prof.Y

Registriert seit: 21. Jan 2005
4 Beiträge
 
#8

Re: Warum sind *.exe's so groß

  Alt 23. Jan 2005, 18:45
Zitat von Robert_G:
Ich habe mir ein MergeModule mit allen Packages angelegt, die ich IMMER brauche....
Eine Setup.exe läßt sich ganz leicht und billig (=Gratis) mit InnoSetup und die ISTools sehr profimäßig anlegen.
Damit kannst Du trennen:
1 Setup mit FullInstall (Progi + BPL)
oder
1 Setup mit nur Progi + 1 Setup mit nur BPL und gemeinsame Biblios

Die BPLs sollten im Windows-Verzeichnis oder noch besser im "Anwendungsdaten-Verzeichnis" ausgelagert => kein Path-Änderung nötig (was Aufgrund mancher AntiVirus-Software sooderso nicht immer zugelassen wird...)

Weiterhin kannst Du mit InnoSetup einen "Default Setup" anlegen... dann brauchst Du pro Projekt nur noch die Exe hinzuzufügen und das wär's (fast;)

Gruß,
No Task, no fun...
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Warum sind *.exe's so groß

  Alt 24. Jan 2005, 09:51
Eine Alternative:

Ich hatte mehrere Programme unter Delphi 3 Professional und Delphi 7 Personal compiliert und dabei festgestellt, dass die *.EXE unter Delphi 7 Personal deutlich größer geworden sind. Ich packe die *.EXE dann mit UPX. Dadurch werden sie zwischen 50 und 70 % kleiner. Der Bedarf an Arbeitsspeicher steigt allerdings etwas an. Ich hatte das bei einem Programm getestet und da waren es ~10 %.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#10

Re: Warum sind *.exe's so groß

  Alt 24. Jan 2005, 13:09
Zitat von Prof.Y:
Zitat von Robert_G:
Ich habe mir ein MergeModule mit allen Packages angelegt, die ich IMMER brauche....
Eine Setup.exe läßt sich ganz leicht und billig (=Gratis) mit InnoSetup und die ISTools sehr profimäßig anlegen.
Dagegen halte ich mit Bei Google suchenOrca msi
Wer ein VisualStudio sein eigen nennt hat dort schon eingabute SetUp Projects, die sich autom. anhand der Projekte in der Solution voreinstellen. (Sollte Borland UNBEDINGT einführen )
Unter Windows sollte man Installationen IMMER mit MSI machen alles andere sind nur billige Bastellösungen (sorry für die NSIS-Fans, ist leider so )
Nur MSI-Installationen bewahren ein System vor doppelt installierten Bibliotheken oder geklauten Bibliotheken bei einer Deinstallation.
Außerdem schützt Windows dann deine Anwendung installiert beim Klick auf den ShortCut Bibliotheken, die zwischendurch gelöscht wurden (es reparariert eigentlich alles wieder, Registry, environment path,...)
Zitat von Prof.Y:
Damit kannst Du trennen:
1 Setup mit FullInstall (Progi + BPL)
oder
1 Setup mit nur Progi + 1 Setup mit nur BPL und gemeinsame Biblios
Deshalb MergeModules, die definiere ich einmal und muss die nur noch einem Setup hinzufügen.

Zitat von Prof.Y:
Die BPLs sollten im Windows-Verzeichnis oder noch besser im "Anwendungsdaten-Verzeichnis" ausgelagert => kein Path-Änderung nötig (was Aufgrund mancher AntiVirus-Software sooderso nicht immer zugelassen wird...)
Die "common files" sind aber genau dafür da.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz