Ինչպես նվազեցնել Exe- ի չափը

Բովանդակություն:

Ինչպես նվազեցնել Exe- ի չափը
Ինչպես նվազեցնել Exe- ի չափը

Video: Ինչպես նվազեցնել Exe- ի չափը

Video: Ինչպես նվազեցնել Exe- ի չափը
Video: 🌺 Красивая! Удобная! Практичная! Летняя женская кофточка спицами. Часть 1. 🌺 Размер 48-50 2024, Մայիս
Anonim

Նախկինում անհատական համակարգիչների RAM և երկարաժամկետ պահեստավորման սարքերի փոքր քանակությունը շատ խիստ սահմանափակումներ մտցրեց ծրագրերի չափի վրա: Այս խնդիրն այսօր գոյություն չունի: Այնուամենայնիվ, նույնիսկ հիմա երբեմն կարևոր է հնարավորինս նվազեցնել մշակված հավելվածի exe- մոդուլի չափը:

Ինչպես նվազեցնել exe- ի չափը
Ինչպես նվազեցնել exe- ի չափը

Անհրաժեշտ է

  • - աղբյուր;
  • - կազմող, կապող;
  • - PE մոդուլների կոմպրեսորներ, ինչպիսիք են UPX, Themida:

Հրահանգներ

Քայլ 1

Կառուցեք գործադիրի կիրառման թողարկման տարբերակը: IDE- ի նախագծի պարամետրերում ընտրեք համապատասխան կազմաձևը: Եթե այդպիսի կազմաձեւ չկա, ստեղծեք այն ՝ հիմնվելով առկաի վրա: Փոփոխեք հղիչի ընտրանքների ցանկը ՝ հեռացնելով և ավելացնելով համապատասխան հրահանգներ: Այսպիսով, Microsoft- ի զարգացման փաթեթն օգտագործելիս պետք է հեռացնեք / կարգաբերման տարբերակը: Սկզբնաղբյուրին կարող եք նաև ավելացնել հետևյալ հրահանգը. # Պրագմայի մեկնաբանություն (հղիչ, "/ ԱLEԱՏԵԼ")

Քայլ 2

Կազմաձևեք նախագիծը ՝ գործադիրը ստատիկ գրադարանների հետ հնարավորինս չկապելուց խուսափելու համար: Օգտագործեք համապատասխան գրադարանների ընդհանուր տարբերակները: Օրինակ, կարող եք բացառել C և C ++ գործարկման գրադարանների ծածկագիրը ՝ փոխարինելով linker տարբերակը / ML կամ / MT (ստատիկ մեկ և բազմաշերտ գրադարաններ) / MD (բազմաշերտ CRT DLL):

Քայլ 3

Հաշվի առեք exe մոդուլի տարբեր հատվածների միաձուլումը մեկի մեջ: Այս մեթոդը նկատելի արդյունք չի տա, եթե ֆայլը բավականաչափ մեծ է, բայց 20-30 կիլոբայթ սկզբնական մոդուլի չափով շահույթը կարող է զգալի լինել: / Merge linker տարբերակը թույլ է տալիս միավորել բաժինները: Կարող եք այն սահմանել նախագծի պարամետրերի միջոցով. / Merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data կամ օգտագործելով պրագմայի հրահանգներ աղբյուրի կոդում. միաձուլել ՝.text =.data ") # պրագմայի մեկնաբանություն (հղիչ," /merge:.reloc=.data")# պրագմայի մեկնաբանություն (հղիչ, "/merge:.rdata=.data")# պրագմայի մեկնաբանություն (հղիչ," / merge:.idata =.data ") Իմաստ ունի նաև սահմանել ստացված հատվածի հատկանիշները.

Քայլ 4

Նվազեցրեք exe- ի չափը `սահմանելով բլոկների չափի նվազագույն արժեքը, որի սահմանները հավասարեցված են: Օգտագործեք / filealign հղիչ տարբերակը, որը նշված է նախագծի հատկությունների կամ պրագմայի հրահանգի խմբագրման միջոցով. #Pragma comment (linker, "/ filealign: 0x200") Այս մեթոդը հարմար է փոքր մոդուլների համար:

Քայլ 5

Փորձեք նվազեցնել exe ֆայլի չափը `այն կառուցելով օպտիմալացման ընտրանքներով` մեքենայական կոդի քանակը նվազեցնելու համար: Փոխարինեք / O2 կամ / Od կազմողի ընտրանքները / O1- ով:

Քայլ 6

Փոխարինեք ստանդարտ DOS կոճակը exe- մոդուլում ձեր սեփականով, որն ունենալու է նվազագույն չափ: Օգտագործեք կապիչ օղակը / կոճղ ՝ #pragma comment (linker, "/stub:mystub.exe")Hhere mystub.exe- ը DOS- ի գործարկվող ֆայլի անունն է, որը կավելացվի exe մոդուլին որպես համակ:

Քայլ 7

Հաշվի առեք դիմումում նշելու ձեր սեփական մուտքի կետը: Սա կվերացնի ստատիկ գործարկման ժամանակի գրադարանների նախնականացման կոդը: Օգտագործեք / մուտքի հղիչ տարբերակը, օրինակ ՝ #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Քայլ 8

Կիրառեք փաթեթավորման կոմունալ ծառայություններ, ինչպիսիք են UPX, ASPack, Themida, PECompact ավարտված exe ֆայլը: Մոդուլի տվյալները կսեղմվեն: Դրանք հավելվածը գործարկելուց հետո կբեռնաթափվեն հիշողության մեջ: Այս մեթոդը լավ արդյունքներ է տալիս մեծ exe ֆայլերի համար, որոնք պարունակում են մեծ քանակությամբ ստատիկ տվյալներ ցածր էնտրոպիայով (օրինակ, ռեսուրսների բաժնում DIB ռաստերներ):

Խորհուրդ ենք տալիս: