Kiasi kidogo cha RAM na vifaa vya kuhifadhi muda mrefu kwenye kompyuta za kibinafsi hapo zamani viliweka vizuizi vikali kwa saizi ya programu. Shida hii haipo leo. Walakini, hata sasa wakati mwingine ni muhimu kupunguza saizi ya moduli ya zamani ya programu iliyokuzwa iwezekanavyo.
Muhimu
- - chanzo;
- mkusanyaji, kiunganishi;
- - compressors ya moduli za PE, kama vile UPX, Themida.
Maagizo
Hatua ya 1
Jenga toleo la kutolewa kwa programu inayoweza kutekelezwa. Chagua usanidi unaofaa katika mipangilio ya mradi katika IDE. Ikiwa hakuna usanidi kama huo, tengeneza kulingana na ile iliyopo. Rekebisha orodha ya chaguzi za kiunganishi kwa kuondoa na kuongeza maagizo yanayofaa. Kwa hivyo, wakati wa kutumia kifurushi cha maendeleo kutoka Microsoft, unapaswa kuondoa chaguo la "debug". Unaweza pia kuongeza maagizo yafuatayo kwa nambari ya chanzo: maoni ya #pragma (kiunganishi, "/ TUA")
Hatua ya 2
Sanidi mradi ili kuepuka kuunganisha inayoweza kutekelezwa na maktaba tuli kadri inavyowezekana. Tumia matoleo ya pamoja ya maktaba husika. Kwa mfano, unaweza kutenga nambari ya maktaba ya C na C ++ ya wakati wa kukimbia kwa kubadilisha chaguo la kiunganishi / ML au / MT (maktaba ya moja na ya nyuzi nyingi) na / MD (CRT DLL yenye nyuzi nyingi).
Hatua ya 3
Fikiria kuunganisha sehemu tofauti za moduli ya zamani kuwa moja. Njia hii haitatoa matokeo dhahiri ikiwa faili ni kubwa ya kutosha, lakini na saizi ya moduli ya awali ya kilobytes 20-30, faida inaweza kuwa kubwa. Chaguo / unganisha kiunganishi hukuruhusu kuunganisha sehemu. Unaweza kuiweka kupitia vigezo vya mradi: / unganisha:.text =.data /merge:.reloc=.data /merge:.rdata=.data au kutumia maagizo ya pragma kwenye nambari ya chanzo: #pragma maoni (kiunganishi, "/ unganisha:.text =.data ") maoni ya pragma (kiunganishi," /merge:.reloc=.data")#pragma maoni (kiunganishi, "/merge:.rdata=.data")#pragma comment (linker," / merge:.idata =.data ") Pia ni jambo la busara kufafanua sifa za sehemu inayosababisha:
Hatua ya 4
Punguza saizi ya exe kwa kuweka kiwango cha chini cha saizi ya vitalu kando ya mipaka ambayo sehemu hizo zimepangwa. Tumia chaguo la kiunganishi cha / filealign maalum kwa kuhariri mali ya mradi au maagizo ya pragma: #pragma maoni (kiunganishi, "/ filealign: 0x200") Njia hii inafaa kwa moduli ndogo.
Hatua ya 5
Jaribu kupunguza saizi ya faili ya zamani kwa kuijenga na chaguzi za kuboresha ili kupunguza idadi ya nambari ya mashine. Badilisha chaguzi za mkusanyaji / O2 au / Od na / O1.
Hatua ya 6
Badilisha stub ya kawaida ya DOS katika moduli ya zamani na yako mwenyewe, ambayo itakuwa na saizi ya chini. Tumia chaguo la kiunganishi / stub: #pragma maoni (kiunganishi, "/stub:mystub.exe")Hapa mystub.exe ni jina la faili inayoweza kutekelezwa ya DOS ambayo itaongezwa kwenye moduli ya zamani kama shina.
Hatua ya 7
Fikiria kutaja sehemu yako ya kuingia kwenye programu. Hii itaondoa nambari ya uanzishaji ya maktaba za wakati wa kukimbia. Tumia chaguo la kiunganishi / kiingilio, kwa mfano: #pragma maoni (kiunganishi, "/ kiingilio: MyStartup") batili MyStartup () {:: MessageBox (NULL, "Hello!", "Ujumbe!", MB_OK);}
Hatua ya 8
Tumia huduma za ufungaji kama UPX, ASPack, Themida, PECact kwenye faili ya kumaliza ya zamani. Takwimu za moduli zitasisitizwa. Watafunguliwa kwenye kumbukumbu baada ya kuzindua programu. Njia hii inatoa matokeo mazuri kwa faili kubwa za zamani zilizo na idadi kubwa ya data tuli na entropy ya chini (kwa mfano, rasters za DIB katika sehemu ya rasilimali).