Kako Zmanjšati Velikost Exe

Kazalo:

Kako Zmanjšati Velikost Exe
Kako Zmanjšati Velikost Exe

Video: Kako Zmanjšati Velikost Exe

Video: Kako Zmanjšati Velikost Exe
Video: Запись на флешку. Как записать на флешку музыку, игру, видео, фильм 2024, Maj
Anonim

Majhna količina RAM-a in naprav za dolgoročno shranjevanje na osebnih računalnikih je v preteklosti nalagala zelo stroge omejitve glede velikosti programov. Ta problem danes ne obstaja. Vendar je tudi zdaj včasih pomembno čim bolj zmanjšati velikost exe-modula razvite aplikacije.

Kako zmanjšati velikost exe
Kako zmanjšati velikost exe

Potrebno

  • - vir;
  • - prevajalnik, povezovalnik;
  • - kompresorji PE modulov, kot so UPX, Themida.

Navodila

Korak 1

Izdelajte različico za izdajo aplikacije, ki jo je mogoče izvršiti. V nastavitvah projekta v IDE izberite ustrezno konfiguracijo. Če takšne konfiguracije ni, jo ustvarite na podlagi obstoječe. Spremenite seznam možnosti povezovalnika tako, da odstranite in dodate ustrezne direktive. Torej, ko uporabljate Microsoftov razvojni paket, odstranite možnost / debug. V izvorno kodo lahko dodate tudi naslednjo direktivo: #pragma comment (linker, "/ RELEASE")

2. korak

Konfigurirajte projekt, da se čim bolj izognete povezovanju izvršljive datoteke s statičnimi knjižnicami. Uporabite skupne različice ustreznih knjižnic. Kodo knjižnic izvajalnega okolja C in C ++ lahko na primer izključite z zamenjavo možnosti povezovanja / ML ali / MT (statične eno- in večnitne knjižnice) z / MD (večnitni CRT DLL).

3. korak

Razmislite o združitvi različnih odsekov modula exe v enega. Ta metoda ne bo dala opaznega rezultata, če je datoteka dovolj velika, vendar je pri začetni velikosti modula 20-30 kilobajtov dobiček lahko znaten. Možnost / spajanje povezovalnika omogoča spajanje odsekov. Nastavite ga lahko s parametri projekta: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data ali z uporabo pragma direktiv v izvorni kodi: #pragma comment (linker, "/ spajanje:.text =.data ") # pragma komentar (povezovalec," /merge:.reloc=.data")#pragma komentar (povezovalnik, "/merge:.rdata=.data")#pragma komentar (povezovalnik," / merge:.idata =.data ") Prav tako je smiselno definirati atribute nastalega razdelka: #pragma comment (linker," /section:.data, rwe ")

4. korak

Zmanjšajte velikost exe, tako da nastavite najmanjšo vrednost velikosti blokov, na mejah katerih so odseki poravnani. Uporabite možnost / filealign linker, določeno z urejanjem lastnosti projekta ali direktive pragma: #pragma comment (linker, "/ filealign: 0x200") Ta metoda je primerna za majhne module.

5. korak

Poskusite zmanjšati velikost datoteke exe, tako da jo sestavite z možnostmi optimizacije, da zmanjšate količino strojne kode. Možnosti prevajalnika / O2 ali / Od zamenjajte z / O1.

6. korak

Zamenjajte standardni DOS-ov oksid v exe-modulu s svojim, ki bo imel najmanjšo velikost. Uporabite možnost povezave / stub: #pragma comment (linker, "/stub:mystub.exe")Tu je mystub.exe ime izvršljive datoteke DOS, ki bo dodana v modul exe kot okrasna.

7. korak

Razmislite o določitvi lastne vstopne točke v aplikacijo. To bo odpravilo inicializacijsko kodo statičnih izvajalnih knjižnic. Uporabite možnost / entry linker, na primer: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

8. korak

Na končno datoteko exe uporabite pripomočke za pakiranje, kot so UPX, ASPack, Themida, PECompact. Podatki modula bodo stisnjeni. Po zagonu aplikacije bodo razpakirani v pomnilnik. Ta metoda daje dobre rezultate za velike datoteke exe, ki vsebujejo veliko količino statičnih podatkov z nizko entropijo (na primer rastri DIB v razdelku z viri).

Priporočena: