Užitečné komponenty pro Delphi a C++ Builder, díl 78.

Dnes si nebudeme povídat o komponentách, ale zastavíme se nad tématem komprese souborů aplikace. Proto je to téma v zásadě vhodné pro každého, ať už programujete v čemkoliv.
Poněkud zamlžený úvod si hned vysvětlíme. Nebude řeč o komprimaci aplikace do podoby instalačního balíku, ale přímo o zmenšení výsledného exe souboru (a nejen toho). Známý problém při použití programovacích nástrojů jako Delphi je to, že i zcela "prázdný" program (tedy prázdný formulář) zabírá po kompilaci v podobě spustitelného exe souboru přes 300 kB. Pokud navíc máte rádi cizí vizuální komponenty, může velikost výsledného souboru rychle růst, aniž by program vlastně ještě něco uměl. A právě to se dá řešit komprimací výsledného souboru (ale například též dll knihoven a dalších součástí aplikace) pomocí speciálních nástrojů. Výsledkem takové úpravy je nový exe soubor (dll knihovna atd..), který má však znatelně menší velikost. Při jeho spuštění uživatel nic nepozná, protože program je v paměti počítače opět dekomprimován (příslušný mechanismus je součástí programu) a funguje stejně jako původní originál. U velkých aplikací se tak dá například zkrátit doba spouštění, nemluvě o úspoře místa na disku. Uspořené místo sice dnes již není takový problém, ale při přenosu souborů přes internet (nebo síť obecně) je každý ušetřený kB lepší než nic.

Jistě vás teď napadlo, že komprimuje-li se aplikace až po jejím vytvoření (tedy výsledný exe soubor), nic nám vlastně nebrání zkomprimovat si takto libovolnou aplikaci, kterou na disku máme a vůbec nepotřebujeme zdrojový kód. Ano, to je pravda a můžete si klidně zkomprimovat MS Office, když se vám bude chtít. Věděli jste například, že Word ve verzi XP (tedy jeho spustitelná exe část bez knihoven) má 10 MB?

Dost tedy vysvětlování. Představíme si teď dva nástroje, které se kompresí aplikací zabývají. První je zdarma a dnes uděláme výjimku a představíme si i jeden komerční produkt.

UPX 1.24

UPX neboli Ultimate Packer for eXecutables je zdarma, je výborný a proto je také velmi oblíbený. Nabízí vynikající kompresní poměr (často lepší než běžné kompresní programy) a rychlost při dekompresi. Je k dispozici nejen pro Windows (jako konzolová aplikace, viz. dále), ale i pro samotný DOS, Linux či Atari. Jak bývá v této kategorii zvykem, je k dispozici zdrojový kód.

Mezi podporované formáty pro kompresi patří nejen exe soubory a knihovny Windows, ale rovněž formáty Linuxu, DOSu a Atari, tedy vlastně stejné platformy, pro které UPX existuje. Detaily se dočtete na domovských stránkách projektu.

Jak jsem zmiňoval na začátku, pro prostředí Windows se jedná o konzolovou aplikaci. Nečekejte tedy žádné grafické uživatelské rozhraní, ale jednoduché textové okno příkazového řádku. Naštěstí není ovládání nijak složité, pro základní práci vám stačí znát asi tak tři parametry. Pro přesnější doladění komprese dle vašich požadavků pak najdete popis dalších možností v nápovědě, ale v základní konfiguraci vše funguje více než dostatečně a není třeba si dalšími parametry příliš lámat hlavu.

Malou srovnávací tabulku výsledného kompresního poměru naleznete na konci článku.

ASPack 2.12

ASPack je již komerční projekt, pocházející od společnosti ASPack Software. Jedná se již o běžnou Windows aplikaci, tedy obvyklé uživatelské rozhraní. Nepracuje však v jiných systémech než Windows. Chlubí se na stránkách kompresním poměrem až o 20% lepším než u formátu zip.

K použití není celkem co říci. Funkce jsou dostupné z přehledného a jednoduchého grafického rozhraní a tak je možná použitelnost o něco pohodlnější. Zatoužíte-li po tomto nástroji, zaplatíte si za osobní licenci pro nekomerční (!!) projekty $29, což je docela hodně.

Srovnání

Pro srovnání jsem zkomprimoval vždy s maximálním nastavením programu (s cílem dosáhnout co nejlepšího kompresního poměru) 3 aplikace. První je zmiňovaná "prázdná" aplikace, vytvořená v Delphi 7. Druhou testovací aplikací je o něco větší program rovněž vytvořený v Delphi, který používá řadu vizuálních komponent a má poměrně rozsáhlé uživatelské rozhraní. Třetí aplikace (kancelářská) je již opravdu velká. Takové doma zřejmě tvořit nebudete. :)

Zde je tedy srovnávací tabulka:

Klepněte pro větší obrázek

Obrázek o výkonu obou aplikací si můžete udělat sami. Jejich výsledky jsou velmi podobné. Musím na obranu ASPacku dodat, že volba "Maximální komprese" byla ve volně stažitelné verzi nedostupná. Dá se očekávat, že při maximální kompresi by se výsledky ještě zlepšily. Neporovnával jsem čas komprese, protože je to dle mého názoru zcela nepodstatná veličina. Takto budete programy komprimovat jen jednou (těsně před distribucí uživatelům) a tak nějaké rozdíly v řádu sekund nebo klidně i minut nehrají roli (na rozdíl od běžných komprimačních programů). Oba programy však pracovali velmi rychle. I onu velkou aplikaci 16 MB dokázali zkomprimovat za méně jak 1 minutu i na mém starším počítači. Dekomprese je pochopitelně dílem okamžiku.

Co říci závěrem? Komprese aplikačních souborů se nemusíte bát, umožní vám srazit původní velikost spustitelných souborů i knihoven na méně než polovinu a pro uživatele se nic nemění. Různých nástrojů, které to umí, je celá řada. Dnes jsme si představili dva nejlepší. Dosahují prakticky stejných výsledků a můj osobní favorit hlavně kvůli nulové ceně je UPX.

Diskuze (6) Další článek: Olympus E-1 - profesionální digitální zrcadlovka od Olympusu

Témata článku: Software, Windows, Programování, Běžná aplikace, Srovnávací tabulka, Výsledné dílo, Nepodstatný parametr, Atari, Komponenta, Uživatelské rozhraní, Díl, Textové okno, Spustitelný soubor


Určitě si přečtěte

Kde se bere elektřina v zásuvce? Poznejte 10 tajemství venkovních stožárů s dráty

Kde se bere elektřina v zásuvce? Poznejte 10 tajemství venkovních stožárů s dráty

Elektřina se vyrábí v elektrárnách, ale do zásuvek v našich domovech to pak má ještě hodně daleko. Dnes se na tuhle dlouhou cestu podíváme.

David Polesný | 81

Do kanceláře to nejlepší: Test notebooku HP Elitebook 830 G5

Do kanceláře to nejlepší: Test notebooku HP Elitebook 830 G5

** HP se u nového Elitebooku snaží o nadstandardní výbavu ** Notebook klade důraz na videokonference ve firemním prostředí ** Unikátní displej umí omezit čitelnost z boku

Tomáš Holčík | 57

Jak funguje největší akumulátor v Česku: podívejte se do elektrárny Dlouhé Stráně

Jak funguje největší akumulátor v Česku: podívejte se do elektrárny Dlouhé Stráně

** Přečerpávací vodní elektrárna Dlouhé stráně je obdivuhodné technické dílo ** Stejná turbína vyrábí elektřinu i tlačí vodu zpět do horního jezera ** Strojovna elektrárny je zabudována v podzemí

David Polesný | 34

Loopwheels znovu vymyslelo kolo. Místo drátů má v ráfcích kompozitové pružiny, které vylepší komfort jízdy

Loopwheels znovu vymyslelo kolo. Místo drátů má v ráfcích kompozitové pružiny, které vylepší komfort jízdy

** Proč vymýšlet kolo? Protože ho lze vymyslet lépe! ** Kola Loopwheels nabízejí integrované odpružení ** Cílem je poskytnout pohodlnější a klidnější jízdu

Karel Kilián | 14

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

** Sonda LRO pořídila z oběžné dráhy Měsíce zajímavé snímky ** Jsou na nich vidět artefakty všech misí programu Apolla, které přistály na povrchu Měsíce ** Jde například o části lunárních modulů, rovery a dokonce i vlajky

Petr Kubala | 65

Praktické vychytávky, které si chcete doinstalovat do Windows

Praktické vychytávky, které si chcete doinstalovat do Windows

** Pokud vás nudí vzhled nabídky Start, snadno jej můžete změnit. ** Stejně tak existují programy na přidání záložek do programů. ** Spokojit se ani nemusíte se základním ovládáním hlasitosti.

Vladislav Kluska | 44

Co je srdce nového iPhonu? Apple A12 Bionic, první 7nm čip nabitý výkonem

Co je srdce nového iPhonu? Apple A12 Bionic, první 7nm čip nabitý výkonem

** Apple v nových iPhonech používá nový vlastní čip A12 Bionic ** Jde o první 7nm čip na světě ** Kromě vyššího klasického výkonu dostala neuronová část masivní navýšení rychlosti zpracování umělé inteligence

Karel Javůrek | 38

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

** Máme eObčanku, máme čtečku, vyzkoušeli jsme přihlášení na weby úřadů. ** Objevily se drobné problémy, podařilo se nám je vyřešit. ** Používání eObčanky pro online identifikaci je velmi pohodlné.

Marek Lutonský | 35

Tesla je stále ve ztrátě, ale elektromobily Model 3 se prodávají neuvěřitelně dobře

Tesla je stále ve ztrátě, ale elektromobily Model 3 se prodávají neuvěřitelně dobře

** Tesla má rekordní příjem, je ale ve ztrátě ** Objem výroby se zvyšuje, dochází ale baterie ** Pomoci mají nové továrny Gigafactory

Karel Javůrek | 93


Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání