Kuidas Exe Suurust Vähendada

Sisukord:

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

Video: Kuidas Exe Suurust Vähendada

Video: Kuidas Exe Suurust Vähendada
Video: FRIDAY NIGHT FUNKIN Sonic.exe VS Evil boyfriend перевод на русский/на русском.#Sonic.exe,#Sonicfnf 2024, Aprill
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: