Warum sind Die EXEs sooo gigantisch?
-
Danke für die schnelle Antworten! Habe ich alles gemacht (außer auf VCL verzichten) und die datei ist 195 kb groß. immer noch viel finde ich. Für nur ein Formular das nicht besonders viel macht.
-
Es gibt da ein Packprogramm, nennt sich glaub upx
-
Hallo
Linnea hat upx schon erwähnt.
/Edit : audacia wars...
bis bald
akari
-
ich? nicht wirklich
allerdings frage ich mich was an 600kB so groß ist, weder Festplatten noch RAM haben damit heutzutage ein Problem. OK, auf nem Handheld oder ähnlichem kanns etwas enger werden, aber auch da werden die Karten eher größer als kleiner. Und die Datei übers I-Net zu versenden geht bei der Größe sogar mit Modem.
-
Update: In fairness, this was written several years ago. This very well may no longer be an issue today.
Die Gründe UPX nicht zu nutzen sind quasi ja wohl nicht gegeben. Trotzdem danke für den Link von StripReloc.
So zur Info. eine ca 4MB EXE wird mit UPX unter 1MB klein. Da wir diese teilweise über Satellit senden und soetwas seeeehr teuer ist, ist klein sein ein muss. Ansonsten dürfte das ziemlich egal sein, bei 1 Terrabyte Festplatten. *lach*
Aber mal andere Frage:
ASPack sieht genauso aus wie UPX welches OpenSource und kostenlos ist. Haben die das geklaut und verkaufen das an Unwissende oder wie muss man das verstehen?
-
Hi,
soweit ich weiß, (war zumindest wohl früher so) muß immer die gesamte VCL gelinkt sein, weil Du ja den Klassennamen der Klasse die erzeugt werden soll auch über ein Edit-Feld eingeben kannst und der Linker nicht wissen kann was Du mal verwenden willst.
Gruß Mümmel
-
UPXler schrieb:
Update: In fairness, this was written several years ago. This very well may no longer be an issue today.
Die Gründe UPX nicht zu nutzen sind quasi ja wohl nicht gegeben.
Doch; das "Update" bezieht sich nur auf den letzten Punkt mit den Virus-Scannern. Die anderen beiden Argumente sind nach wie vor gültig.
UPXler schrieb:
So zur Info. eine ca 4MB EXE wird mit UPX unter 1MB klein. Da wir diese teilweise über Satellit senden und soetwas seeeehr teuer ist, ist klein sein ein muss.
ZIP/RAR?
muemmel schrieb:
soweit ich weiß, (war zumindest wohl früher so) muß immer die gesamte VCL gelinkt sein, weil Du ja den Klassennamen der Klasse die erzeugt werden soll auch über ein Edit-Feld eingeben kannst und der Linker nicht wissen kann was Du mal verwenden willst.
Das fällt unter die von mir bereits genannten Punkte RTTI und Persistenzframework.
So ganz richtig ist es außerdem nicht (und das war es auch früher nicht): grundsätzlich läßt der Linker durchaus alles, was nicht direkt benutzt wird, weg (sonst wäre eine normale EXE-Datei so groß wie alle VCL-Packages zusammengenommen, also irgendetwas im zweistelligen MB-Bereich ;)). RTTI steht demnach nur für verwendete Klassen zur Verfügung. Allerdings kann man bei Bedarf die Einbindung der RTTI für eine Klasse mittels RegisterClass erzwingen (hier ein Artikel zu diesem Thema).Edit: muemmel mit UPXler velwechsert
-
Ja stimmt, bezog sich auf den Virenscanner. Allerdings sind die beiden anderen Punkte doch Unfug. Zum einen hat heute keiner mehr 32MB RAM, wo man gross an Limits stössen könnte, noch macht eine kleine EXE derartige Performance Probleme. Da müsste schon das System wegen ganz anderen Dingen aufn Zahnfleisch krauchen. Auch den Punkt mit den multiplen Instanzen kann ich nicht nachvollziehen. Ich starte eine normale EXE und jede Instanz davon hat knapp 5MB laut Task-Process-Manager. Ich starte eine komprimierte EXE und diese hat knapp 6MB pro Instanz. Wo ist da ein signifikanter Unterschied?
Wenn man ein paar LIBs ins Projekt include, dann wird es schonmal 4-6MB gross. Kein Beinbruch, aber wer mit Diksetten gross geworden ist, der hat wohl den Hang es kleiner haben zu wollen, damit es "kompakt ausschaut".
Ich sehe in UPX keinerlei Nachteile. Ich will aber auch nicht streiten, jeder wie er mag und möchte und bei Standalone Anwendungen die nur eine Instanz zulassen (wie bei meinen) ist der Punkt "multiple Instanzen" so oder so irrelevant.
P.S. Letztes Zitat von dir war "muemmel"
-
Gerade der letzte Punkt ist auch heute noch gültig...
ich packe eines meiner Programme mit UPX und sieben Virenscanner auf http://www.virustotal.com/ stufen es danach als verdächtig ein. Bei anderen Programmen ist es ähnlich (teils mehr, teils weniger).
Und manche unbedarfte Benutzer schaffen es nicht, die Ausnahmeliste alleine zu verändern... bzw. es scheint in manchen Fällen gar nicht möglich zu sein (AVG PE ist hier ein Problem - auch dadurch, dass es weit verbreitet ist).
Das Motto der meisten Antivirensoftware-Firmen scheint heute "lieber einen Alarm zu viel als zu wenig" zu sein.
-
UPXler schrieb:
den Punkt mit den multiplen Instanzen kann ich nicht nachvollziehen. Ich starte eine normale EXE und jede Instanz davon hat knapp 5MB laut Task-Process-Manager. Ich starte eine komprimierte EXE und diese hat knapp 6MB pro Instanz. Wo ist da ein signifikanter Unterschied?
Das ist auch eher bei DLLs signifikant. Solange du nur deine ausführbare Datei packst, ist das nahezu unproblematisch.
Bei sehr großen ausführbaren Dateien ist aber auch heute das Argument nicht ganz von der Hand zu weisen, daß Windows, wenn die Datei ungepackt vorliegt, nur die benötigten Code-Pages in den Speicher laden muß, wohingegen eine UPX-komprimierte Datei komplett in den Arbeitsspeicher entpackt wird.Ob UPX nun empfehlenswert ist oder nicht, ist freilich individuell abzuwägen. So wie dir die Nachteile verschlossen bleiben, finde ich die Vorteile irrelevant.
UPXler schrieb:
P.S. Letztes Zitat von dir war "muemmel"
Richtig; bitte entschuldige meine Unaufmerksamkeit. Ich habe es geändert.