Liste der Anhänge anzeigen (Anzahl: 2)
UPX - Kompression von Programmdateien spart Speicherplatz
Es ist ganz einfach: Der Bytecode der Ausführbaren Dateien kann dank UPX enorm reduziert werden! Im Schnitt zwischen 30% und 50% Platzersparniss sind drinn, ohne die Funktionalität der Programme oder die Lade- und Ausführ-Geschwindigkeit merklich einzuschränken. Sowohl DLLs wie EXEs können damit ohne Overhead komprimiert werden und sind danach weiterhin ausführbar. Das Tool Ultimate Packer for eXecutables ist leider nur als Kommandozeilenprogramm verfügbar, aber jedoch OpenSource, portabel und sehr einfach zu bedienen.
Der Screenshot zeigt übrigens die fertige Kompression des Agenda One-Programms. Mit upx --help lassen sich noch mehr optionen anzeigen und die Kompressionsraten auch durchaus noch verbessern.
http://www.pocketpc.ch/attachment.php?attachmentid=2086
Anhang 2087
Zur betreffenden Sourceforge-Seite geht es hier entlang.
Die aktuelle Version kann übrigens leider noch keine .NET-Programme komprimieren, aber alles Andere ist kein Problem.
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Cool! Aber wirklich ohne Lade-verzögerung?
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Nun, mein M5000 ist ja nicht das schnellste Gerät, ich merke aber etwa bei Agenda One keinen Unterschied. Probier es einfach mal aus (mit Backups natürlich). Man muss ja auch nicht die höchste Kompressionsstuffe verwenden, falls es wirklich Verzögerungen geben sollte.
AW: UPX - Kompression von Programmdateien spart Speicherplatz
:-) Ich liebe mein M5000 gerade wegen der Geschwindigkeit. MobileHelp läuft dort drauf fast am schnellsten. Auch wenn das Browsen manchmal etwas langsam ist.
Ich probiers mal aus, super tipp auf jeden fall!
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Hab es grad mit dem Speicherfresser Opera 8.65 getestet. Ordentlich viel kleiner , geworden, ja, 1.66 statt 4.63 MB aber die Ladezeit wurde verlängert. Ich hab aber auch alle zueghörigen DLLs gepackt und das maximum an Kompression erzwungen. Ich lass es aber mal so, der Opera war ja schon immer sehr langsam beim Start
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Ja bei dieser Komprimierung ist eine etwas längere Ladezeit durchaus ok... ist schon extrem...
Denke da wird mit zlib gearbeitet, nur muss es zum starten ja quasi auch entpackt werden. Nimmt mich wunder, ev. schau ich mal in den Code...
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Der code ist recht übersichtlich und endianneutral. Mich wundert, dass die compiler das nicht standartmässig schon machen. Schliesslich ist Speicherplat kritisch auf WM, schon immer gewesen.
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Da die Kompression ja verlustfrei geschieht und meiste sogar nur Filter sind, kann man ja auch die .EXE wieder entpacken bei Bedarf.
Hier eine kurze Liste, was ich alles gepackt habe in meinem \Programme-Ordner:
<pre> Ultimate Packer for eXecutables
Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
UPX 3.02w Markus Oberhumer, Laszlo Molnar & John Reiser Dec 16th 2007
File size Ratio Format Name
-------------------- ------ ----------- -----------
5632 -> 5120 90.91% arm/pe CloseApps.exe
313760 -> 159648 50.88% arm/pe Explorer.exe
607232 -> 257536 42.41% arm/pe GoogleMaps.exe
5632 -> 5120 90.91% arm/pe Hibernate.exe
19968 -> 12288 61.54% arm/pe pmClean.exe
438784 -> 176128 40.14% arm/pe QuickMark.exe
58368 -> 30208 51.75% arm/pe RUpdate.exe
91040 -> 40864 44.89% arm/pe RViewer.exe
446392 -> 138680 31.07% arm/pe SKTracker.exe
136704 -> 68096 49.81% arm/pe WkTask.exe
6144 -> 5120 83.33% arm/pe WkTaskCmd.exe
122368 -> 52736 43.10% arm/pe WkTaskSetting.exe
-------------------- ------ ----------- -----------
2252024 -> 951544 42.25% [ 12 files ]</pre>
Dazu habe ich einfach den ganzen \Programme-Ordner auf den PC kopiert, mit der Suche-Funktion von Windows alle .EXE gesucht und herauskopiert und dann "upx -9 *.exe" ausgeführt. Wirklich erstaunlich, wieviel noch herauszuholen ist. Vor Allem bei schon kleinen Anwendungen, die keine grossartigen Resourcendaten eingegliedert haben. Jetzt mach ich mich an diejenigen Programme wie Skype, die ihre Programmdateien in \Windows untergesellt haben :ideadev:
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Noch ein Nachtrag: Natürlich gehen dabei die Signaturen verloren, also muss man jede Programmdatei, je nach Sicherheitseinstellungen des Geräts, bestätigen oder kann sie gar nicht mehr ausführen (Ist mir aber noch nie vorgekommen).
Man muss übrigens auch nicht davor zurückschrecken, wirklich systemkritische Programmdaeien zu komprimieren:<pre> Ultimate Packer for eXecutables
Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
UPX 3.02w Markus Oberhumer, Laszlo Molnar & John Reiser Dec 16th 2007
File size Ratio Format Name
-------------------- ------ ----------- -----------
1238896 -> 409968 33.09% arm/pe HTC3GVT.dll
Packed 1 file.</pre>
Die HTC3GVT.dll ist für die 3G-Videotelefonie auf meinem HTC Universal zuständig und bisher klappt das noch, trotz mehr als 30% verkleinerter Datei, problemlos :-D :thumbsup:
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Hast du mal überprüft, ob beim Ausführen des Programmes genau gleich viel Speicher vor und nach der Komprimierung frei ist?
Oder ob sogar mehr freier speicher gebraucht wird, da er noch irgendwo die unkomprimierte datei haben mus?
AW: UPX - Kompression von Programmdateien spart Speicherplatz
Nee, da wird sogar weniger Speicher bei der Ausführung benutzt wie es scheint. :-o Bin wirklich beeindruckt.
Hab es gerade mit RescoUpdate getestet:
1064 KB Arbeitsspeicher belegt bei einer Programmdatei von 58368 Bytes.
564 KB Arbeitsspeicher belegt bei einer Programmdatei von 30208 Bytes.
Aber wenn du Zeit hast, teste es mal mit dem RAPIheadwalker, ich habe gerade keine devtools installiert.