Frage

An einem Punkt hatte ich ein nettes kleines Komprimierung-Dienstprogramm, zerschmetterte mein Delphi kompilierte EXE-Datei ist eine kleinere download-Größe, aber jetzt kann ich es nicht finden.Irgendwelche Empfehlungen?

Auch gibt es irgendwelche Nachteile der Verwendung dieser Arten von Dienstprogrammen?(Vor allem nutze ich Sie zu verkürzen, die download-Zeiten für ländliche / DFÜ-Benutzer).


Verwandte Frage: Gibt es irgendwelche Nachteile mit UPX zu komprimieren, eine ausführbare Windows-Datei?

War es hilfreich?

Lösung

Vor Jahren sah ich in meiner ausführbaren Datei komprimiert den Download kleiner zu machen.

Was ich am Ende tun, und was ich für Sie empfehlen, ist ein Installationsprogramm wie Inno Setup zu verwenden, statt. Nicht nur, dass es eine einzelne EXE erstellen, die Ihr Programm installieren / deinstallieren, aber es komprimiert auch, dass EXE praktisch so viel wie ein separater Kompressor allein auf die ausführbare Datei tun würde.

Wenn das Programm installiert ist, dekomprimiert wird, so scheint es, nie einen Virus zu sein und nicht die Ladezeiten erhöhen.

So bekomme ich die Vorteile der kleineren Download-Größe und eine professionell aussehende Installationsskript zur gleichen Zeit.

P. S. Inno Setup ist frei.

Andere Tipps

Die Empfehlung ist, dass Sie nicht:

  • EXE Kompressoren können Ihre Anwendung scheint wie ein Virus (Selbst modifizierenden)
  • machen
  • gzip / zip ist ebenso effektiv bei der Komprimierung und nicht mit Ihrer App
  • bastele
  • EXE Kompressoren machen die Ladezeiten Ihrer Anwendung erhöhen (es sei denn, Sie sind nur über das Setup-Programm zu sprechen, die eine andere Sache

Diese verrückten suchen Website ein Argument bringt ich in der fernen Vergangenheit gehört hatte (ob es wahr ist oder nicht, noch heute, ich bin mir nicht sicher, wahrscheinlich moderne Packer eine andere Strategie haben heute) Dieser Artikel verweist auf Win32! :)

http://topic.csdn.net/t/20000408/08/ 6785.html

  

Modern Multitasking OSes wie   Windows 95/98 und NT verwenden, was ist   ein „virtueller Speicher“ System bezeichnet. Wann   Programme starten, die alle ihren Code ist   nicht sofort in den Arbeitsspeicher geladen   beim Start, wie es der Fall mit DOS   Programme. Stattdessen werden nur Teile von   aktiv ausgeführt wobei der Code sind   in dem Speicher gespeichert. Zum Beispiel, sagen   Ihr Programm hat eine Druckoption auf seinem   Menü und Code dahinter, die Griffe   der Druck. Dieser Code wird nur sein   in den Speicher geladen, sobald der Druck   Funktion wird zuerst durch den Benutzer ausgewählt.   Und wenn nach dem Code geladen   Speicher wird die Print-Funktion nicht verwendet   für eine Weile wird das System „verwerfen“   der Code, die Freigabe des Speichers es   besetzt, wenn eine andere Anwendung   dringend braucht Erinnerung. Dies ist Teil   ein Prozess „Paging“ genannt und ist   völlig transparent für das Programm.

     

Eine andere Möglichkeit, Paging unter Win32   spart Speicher ist es verursacht multiple   Instanzen eines Programms (oder DLL)   den gleichen Speicher für Code teilen. Im   Mit anderen Worten, die unter normalen   es Umstände gibt keine wirkliche   Unterschied in der Menge der körperlichen   Speicher für Code zugewiesen zwischen   Start 100 Instanzen eines Programms   und Starten einer Instanz.

     

Wenn alle Win32-Programme verhielt sich wie   DOS-Programme, geladen alles in   Speicher und es dort, bis die Aufbewahrung   Programm beendet und auch nicht   Austausch von beliebigen Speicher zwischen mehreren   Fällen können Sie sich wahrscheinlich vorstellen   wie schnell physischer Speicher laufen konnte   out auf Systeme mit einer begrenzten Menge,   verursacht Platte starten Swapping.

     

Doch dies ist genau das, was Strom   Win32 EXE Kompressoren tun, um Ihre   EXE / DLL! Sie vollständig gehen   gegen das Paging-System O durch   die gesamten Code in dem Speicher zu dekomprimieren und   hält sie dort bis zum Ende.   Und weil Code nicht in einem gespeicherte   "Raw" Format in der EXE-Datei (das heißt die   gleiche Weise sie im Speicher gespeichert ist), die   O ist nicht in der Lage Code zu teilen zwischen   mehrere Instanzen.

Ich weiß nicht jeder, der speziell für Delphi, aber UPX ist sehr beliebt für diese Art der Sache. Der einzige Nachteil ist, dass die ausführbare Datei dekomprimiert werden muss, wenn es ins Leben gerufen, und dass einige Zeit essen kann. Es scheint für sanely Größe ausführbarer Dateien sehr schnell zu sein, aber.

Die Sie wahrscheinlich denken an ASPack - es ist ein EXE-Kompressor in Delphi geschrieben, aber wird jede EXE komprimieren. Es könnte zusätzlich auch auf Delphi EXE obwohl tun. Ich würde mit den anderen Antworten zustimmen, dass Sie nicht einen EXE-Kompressor nur auf Download-Zeiten speichern verwenden sollten. Es kann bestimmte Situationen, in denen eine EXE-Kompresse ist eine gute Idee, aber im Allgemeinen ist es nicht.

Statt einen guten Installation Builder verwenden, vor allem, wenn Sie einen finden können, die 7-Zip-Kompression verwendet. Ich weiß InstallAware verwendet 7zip intern für maximale Kompression. Je nachdem, welche Versionen von Delphi besitzen Sie auch Sie eine InstallAware Lizenz haben.

Wenn nichts anderes können Sie ein selbst extrahierendes Archiv bauen mit grundlegenden installieren Verhalten mit 7zip kostenlos. Es ist ein separater Download für SFXs für Installateure.

Verwenden Sie UPX mit lzma Option für max Kompression.

upx --lzma yourfile.exe

Die Haupt Unannehmlichkeit einer komprimierten EXE oder DLL ist, dass das Betriebssystem nicht den Code unter mehreren Instanzen gemeinsam nutzen kann.
So Speicher Sie verschwenden, dekomprimiert haben, um jedes Mal, wenn Sie eine Instanz starten, zeigt ein Virus-ähnliches Verhalten, ohne auch nur einen Download-Vorteil über eine komprimierten installieren.
Nur positiver Fall ist, wenn sie direkt von einem Netzlaufwerk zu starten.

Ich glaube, Terminal-Server (Wie z.B. Citrix) verwenden den gleichen Speicher für Sie Anwendung, die binäre wenn es nicht komprimiert ist.Also eine komprimierte exe riechen konnten eine kleine Katastrophe in einer Citrix-Umgebung.

UPX sollte funktionieren, obwohl es nicht Delphi spezifisch ist.

Ich verwende petite: http://un4seen.com/petite/

Ich würde auch für upx stimmen. Neben den Nachteilen, die erwähnt wurden sie schützt auch vor Grund Reverse Engineering und diese lahm „Resource Hacker“ Tools. Die durch die Art und Weise sind viele, und die meisten von ihnen nicht eine komprimierte ausführbare Datei zu öffnen.

, fragte ich eine Frage über die Nachteile der UPX mit Delphi ausführbare Dateien hier auf SO eine Weile zurück, und ich habe einige große Antworten.

Gibt es irgendwelche Nachteile zu mit UPX eine ausführbaren Windows-Datei zu komprimieren?

Sie können mit PECompact , da die Menschen es einfach nicht entschlüsseln kann, und als Test zeigte, (zeigte auf der Hauptseite, einfach nach unten scrollen ein bisschen) es ist besser als ASPack oder UPX, ich habe mit ihm auf meinem früheren Delphi-Projekte

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top