Paano Mabawasan Ang Laki Ng Isang Exe

Talaan ng mga Nilalaman:

Paano Mabawasan Ang Laki Ng Isang Exe
Paano Mabawasan Ang Laki Ng Isang Exe

Video: Paano Mabawasan Ang Laki Ng Isang Exe

Video: Paano Mabawasan Ang Laki Ng Isang Exe
Video: MY WEIGHTLOSS JOURNEY AFTER PREGNANCY | CS MOM | PAANO LUMIIT ANG TIYAN | Cin Tabernilla 2024, Disyembre
Anonim

Ang maliit na halaga ng RAM at pangmatagalang mga aparato sa pag-imbak sa mga personal na computer noong nakaraan ay nagpataw ng napakahigpit na paghihigpit sa laki ng mga programa. Ang problemang ito ay wala ngayon. Gayunpaman, kahit na ngayon ay mahalaga minsan na i-minimize ang laki ng exe-module ng nabuong aplikasyon hangga't maaari.

Paano mabawasan ang laki ng isang exe
Paano mabawasan ang laki ng isang exe

Kailangan

  • - mapagkukunan;
  • - tagatala, linker;
  • - Mga compressor ng PE module, tulad ng UPX, Themida.

Panuto

Hakbang 1

Buuin ang bersyon ng paglabas ng application na naisasagawa. Piliin ang naaangkop na pagsasaayos sa mga setting ng proyekto sa IDE. Kung walang ganoong pagsasaayos, likhain ito batay sa mayroon nang isa. Baguhin ang listahan ng mga pagpipilian sa linker sa pamamagitan ng pag-alis at pagdaragdag ng mga naaangkop na direktiba. Kaya, kapag gumagamit ng isang development package mula sa Microsoft, dapat mong alisin ang pagpipiliang / debug. Maaari mo ring idagdag ang sumusunod na direktiba sa source code: #pragma comment (linker, "/ RELEASE")

Hakbang 2

I-configure ang proyekto upang maiwasan ang pag-link ng maipatutupad sa mga static na aklatan hangga't maaari. Gumamit ng mga nakabahaging bersyon ng kani-kanilang mga aklatan. Halimbawa, maaari mong ibukod ang code ng mga aklatan ng runtime ng C at C ++ sa pamamagitan ng pagpapalit ng pagpipilian ng linker / ML o / MT (mga static na solong at multi-threaded na aklatan) ng / MD (multi-threaded CRT DLL).

Hakbang 3

Isaalang-alang ang pagsasama ng iba't ibang mga seksyon ng module ng exe sa isa. Ang pamamaraang ito ay hindi magbibigay ng isang kapansin-pansin na resulta kung ang file ay sapat na malaki, ngunit sa paunang laki ng module na 20-30 kilobytes, ang pakinabang ay maaaring maging makabuluhan. Pinapayagan ka ng pagpipiliang / pagsamahin ang linker na pagsamahin ang mga seksyon. Maaari mong itakda ito sa pamamagitan ng mga parameter ng proyekto: / pagsasama:.text =.data /merge:.reloc=.data /merge:.rdata=.data o paggamit ng mga direktiba ng pragma sa source code: #pragma comment (linker, "/ pagsamahin:.text =.data ") # puna ng pragma (linker," /merge:.reloc=.data")#pragma komento (linker, "/merge:.rdata=.data")#pragma komento (linker," / sumanib:.idata =.data ") May katuturan din na tukuyin ang mga katangian ng nagresultang seksyon: #pragma komento (linker," / section:.data, rwe ")

Hakbang 4

Bawasan ang laki ng exe sa pamamagitan ng pagtatakda ng minimum na halaga ng laki ng mga bloke kasama ang mga hangganan na nakahanay ang mga seksyon. Gamitin ang pagpipiliang / filealign linker na tinukoy sa pamamagitan ng pag-edit ng mga pag-aari ng proyekto o direktiba ng pragma: #pragma comment (linker, "/ filealign: 0x200") Ang pamamaraang ito ay angkop para sa maliit na mga module.

Hakbang 5

Subukang bawasan ang laki ng file ng exe sa pamamagitan ng pagbuo nito ng mga pagpipilian sa pag-optimize upang mabawasan ang dami ng machine code. Palitan ang / O2 o / Od ng mga pagpipilian sa compiler ng / O1.

Hakbang 6

Palitan ang karaniwang DOS rint sa exe-module gamit ang iyong sarili, na magkakaroon ng minimum na laki. Gamitin ang pagpipiliang / link ng link: #pragma komento (linker, "/stub:mystub.exe")Dito ang mystub.exe ay ang pangalan ng maipapatupad na file ng DOS na idaragdag sa module ng exe bilang isang straw.

Hakbang 7

Isaalang-alang ang pagtukoy ng iyong sariling entry point sa application. Aalisin nito ang code ng pagsisimula ng mga static na runtime library. Gamitin ang pagpipiliang link ng / entry, halimbawa: puna ng #pragma (linker, "/ entry: MyStartup") na walang bisa ang MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Hakbang 8

Mag-apply ng mga gamit sa packaging tulad ng UPX, ASPack, Themida, PECompact sa tapos na file ng exe. Ididikit ang data ng module. Tatanggalin sila sa memorya matapos ilunsad ang application. Nagbibigay ang pamamaraang ito ng mahusay na mga resulta para sa malalaking mga file ng exe na naglalaman ng maraming halaga ng static na data na may mababang entropy (halimbawa, DIB rasters sa seksyon ng mapagkukunan).

Inirerekumendang: