Kako Smanjiti Veličinu Exe-a

Sadržaj:

Kako Smanjiti Veličinu Exe-a
Kako Smanjiti Veličinu Exe-a

Video: Kako Smanjiti Veličinu Exe-a

Video: Kako Smanjiti Veličinu Exe-a
Video: Kako smanjiti velicinu nekog fajla ?(kompresovati ga). 2024, Svibanj
Anonim

Mala količina RAM-a i uređaji za dugotrajnu pohranu na osobnim računalima u prošlosti su nametali vrlo stroga ograničenja veličine programa. Taj problem danas ne postoji. Međutim, čak je i sada ponekad važno smanjiti veličinu exe-modula razvijene aplikacije što je više moguće.

Kako smanjiti veličinu exe-a
Kako smanjiti veličinu exe-a

Potrebno

  • - izvor;
  • - sastavljač, povezivač;
  • - kompresori PE modula, kao što su UPX, Themida.

Upute

Korak 1

Izgradite izdanu verziju aplikacije koja se može izvršiti. Odaberite odgovarajuću konfiguraciju u postavkama projekta u IDE-u. Ako takve konfiguracije nema, stvorite je na temelju postojeće. Izmijenite popis opcija povezivanja uklanjanjem i dodavanjem odgovarajućih direktiva. Dakle, kada koristite Microsoftov razvojni paket, trebali biste ukloniti opciju / debug. Izvornom kodu možete dodati i sljedeću direktivu: #pragma comment (linker, "/ RELEASE")

Korak 2

Konfigurirajte projekt kako biste izbjegli što je moguće povezivanje izvršne datoteke sa statičkim knjižnicama. Koristite zajedničke verzije odgovarajućih knjižnica. Na primjer, možete izuzeti kôd runtime knjižnica C i C ++ zamjenom opcije povezivanja / ML ili / MT (statičke knjižnice s jednim ili više niti) s / MD (CRT DLL s više niti).

3. korak

Razmislite o spajanju različitih odjeljaka exe modula u jedan. Ova metoda neće dati primjetan rezultat ako je datoteka dovoljno velika, ali s početnom veličinom modula od 20-30 kilobajta, dobitak može biti značajan. Opcija povezivanja / spajanje omogućuje spajanje odjeljaka. Možete ga postaviti kroz parametre projekta: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data ili pomoću pragma direktiva u izvornom kodu: #pragma comment (linker, "/ spajanje:.text =.data ") # pragma komentar (linker," /merge:.reloc=.data")#pragma comment (linker, "/merge:.rdata=.data")#pragma comment (linker," / merge:.idata =.data ") Također ima smisla definirati atribute rezultirajućeg odjeljka: #pragma comment (linker," /section:.data, rwe ")

4. korak

Smanjite veličinu exe postavljanjem minimalne vrijednosti veličine blokova duž granica kojih su odjeljci poravnati. Upotrijebite opciju / filealign linker navedenu uređivanjem svojstava projekta ili pragma direktive: #pragma comment (linker, "/ filealign: 0x200") Ova je metoda prikladna za male module.

Korak 5

Pokušajte smanjiti veličinu exe datoteke gradeći je s opcijama optimizacije kako biste smanjili količinu strojnog koda. Zamijenite opcije kompajlera / O2 ili / Od s / O1.

Korak 6

Zamijenite standardni DOS stub u exe-modulu svojim, koji će imati minimalnu veličinu. Upotrijebite opciju / stub linker: #pragma comment (linker, "/stub:mystub.exe")Ovdje mystub.exe je ime DOS izvršne datoteke koja će biti dodana u exe modul kao klat.

7. korak

Razmislite o određivanju vlastite ulazne točke u aplikaciju. To će eliminirati inicijalizacijski kod statičnih runtime knjižnica. Koristite opciju / entry linker, na primjer: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Korak 8

Primijenite uslužne programe za pakiranje poput UPX, ASPack, Themida, PECompact na gotovu exe datoteku. Podaci modula bit će komprimirani. Otpakirat će se u memoriju nakon pokretanja aplikacije. Ova metoda daje dobre rezultate za velike exe datoteke koje sadrže veliku količinu statičkih podataka s niskom entropijom (na primjer, DIB rasteri u odjeljku resursa).

Preporučeni: