Kuidas Exe Suurust Vähendada

Kuidas Exe Suurust Vähendada
Kuidas Exe Suurust Vähendada

Sisukord:

Anonim

Varem kehtestas personaalarvutites väike RAM-i ja pikaajaliste salvestusseadmete hulk programmide suurusele väga ranged piirangud. Seda probleemi pole tänapäeval olemas. Kuid ka praegu on mõnikord oluline väljatöötatud rakenduse exe-mooduli suurust võimalikult palju minimeerida.

Kuidas exe suurust vähendada
Kuidas exe suurust vähendada

Vajalik

  • - allikas;
  • - koostaja, linker;
  • - PE moodulite kompressorid, näiteks UPX, Themida.

Juhised

Samm 1

Ehitage rakenduse käivitatava versiooni versioon. Valige IDE-s projekti sätetes sobiv konfiguratsioon. Kui sellist konfiguratsiooni pole, looge see olemasoleva põhjal. Linkerite valikute loendi muutmiseks eemaldage ja lisage asjakohased direktiivid. Nii et Microsofti arenduspaketi kasutamisel peaksite eemaldama suvandi / silumine. Lähtekoodile saate lisada ka järgmise direktiivi: #pragma comment (linker, "/ RELEASE")

2. samm

Konfigureerige projekt, et vältida võimalikult palju käivitatava faili linkimist staatiliste teekidega. Kasutage vastavate teekide jagatud versioone. Näiteks võite välistada käitamisraamatukogude C ja C ++ koodi, asendades linkimisvaliku / ML või / MT (staatilised ühe- ja mitmekeermelise teegid) väärtusega / MD (mitmekeermelise CRT DLL).

3. samm

Kaaluge exe mooduli erinevate sektsioonide ühendamist üheks. See meetod ei anna märgatavat tulemust, kui fail on piisavalt suur, kuid kui mooduli esialgne suurus on 20-30 kilobaiti, võib võimendus olla märkimisväärne. Valik / ühenda linker võimaldab teil jaotisi ühendada. Saate selle määrata projekti parameetrite kaudu: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data või lähtekoodis pragma-käskude abil: #pragma comment (linker, "/ ühendamine:.text =.data ") # pragma kommentaar (linker," /merge:.reloc=.data")#pragma kommentaar (linker, "/merge:.rdata=.data")#pragma kommentaar (linker," / merge:.idata =.data ") Samuti on mõttekas määratleda saadud jaotise atribuudid: #pragma comment (linker," /section:.data, rwe ")

4. samm

Vähendage exe suurust, määrates plokkide suuruse minimaalse väärtuse, mille piki sektsioone sektsioonid joondatakse. Kasutage projekti atribuutide või pragmadirektiivi redigeerimisega määratud valikut / filealign linker: #pragma comment (linker, "/ filealign: 0x200") See meetod sobib väikestele moodulitele.

5. samm

Püüdke exe-faili suurust vähendada, ehitades selle masinakoodi vähendamiseks optimeerimisvõimalustega. Asendage kompilaatori / O2 või / Od valikud väärtusega / O1.

6. samm

Asendage exe-mooduli standardne DOS-i pistik oma omaga, millel on minimaalne suurus. Kasutage suvandit / stub linker: #pragma comment (linker, "/stub:mystub.exe") Siin on mystub.exe DOS-i käivitatava faili nimi, mis lisatakse exe-moodulisse pistikuna.

7. samm

Kaaluge oma rakenduse sisestuspunkti täpsustamist. See välistab staatiliste käitamisraamatukogude lähtestamiskoodi. Kasutage suvandit / entry linker, näiteks: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

8. samm

Rakendage valmis exe-failile pakendiliideseid nagu UPX, ASPack, Themida, PECompact. Mooduli andmed tihendatakse. Need pakitakse pärast rakenduse käivitamist mällu lahti. See meetod annab häid tulemusi suurte exe-failide puhul, mis sisaldavad suurt hulka madala entroopiaga staatilisi andmeid (näiteks DIB rastrid ressursi jaotises).

Soovitan: