Πώς να μειώσετε το μέγεθος ενός Exe

Πίνακας περιεχομένων:

Πώς να μειώσετε το μέγεθος ενός Exe
Πώς να μειώσετε το μέγεθος ενός Exe

Βίντεο: Πώς να μειώσετε το μέγεθος ενός Exe

Βίντεο: Πώς να μειώσετε το μέγεθος ενός Exe
Βίντεο: Πως να μειώσω το μέγεθος του βίντεο και να εχω ποιότητα! handbrake! 2024, Ενδέχεται
Anonim

Η μικρή ποσότητα μνήμης RAM και μακροπρόθεσμων συσκευών αποθήκευσης σε προσωπικούς υπολογιστές στο παρελθόν επέβαλε πολύ αυστηρούς περιορισμούς στο μέγεθος των προγραμμάτων. Αυτό το πρόβλημα δεν υπάρχει σήμερα. Ωστόσο, ακόμη και τώρα είναι μερικές φορές σημαντικό να ελαχιστοποιηθεί το μέγεθος της exe-module της αναπτυγμένης εφαρμογής όσο το δυνατόν περισσότερο.

Πώς να μειώσετε το μέγεθος ενός exe
Πώς να μειώσετε το μέγεθος ενός exe

Απαραίτητη

  • - πηγή ·
  • - μεταγλωττιστής, σύνδεσμος
  • - συμπιεστές μονάδων PE, όπως UPX, Themida.

Οδηγίες

Βήμα 1

Δημιουργήστε την έκδοση έκδοσης της εφαρμογής που μπορεί να εκτελεστεί. Επιλέξτε την κατάλληλη διαμόρφωση στις ρυθμίσεις του έργου στο IDE. Εάν δεν υπάρχει τέτοια διαμόρφωση, δημιουργήστε τη με βάση την υπάρχουσα. Τροποποιήστε τη λίστα των επιλογών σύνδεσης με την κατάργηση και την προσθήκη κατάλληλων οδηγιών. Έτσι, όταν χρησιμοποιείτε ένα πακέτο ανάπτυξης από τη Microsoft, θα πρέπει να καταργήσετε την επιλογή / debug. Μπορείτε επίσης να προσθέσετε την ακόλουθη οδηγία στον πηγαίο κώδικα: #pragma comment (linker, "/ RELEASE")

Βήμα 2

Διαμορφώστε το έργο για να αποφύγετε όσο το δυνατόν μεγαλύτερη σύνδεση του εκτελέσιμου με στατικές βιβλιοθήκες. Χρησιμοποιήστε κοινόχρηστες εκδόσεις των αντίστοιχων βιβλιοθηκών. Για παράδειγμα, μπορείτε να εξαιρέσετε τον κώδικα των βιβλιοθηκών χρόνου εκτέλεσης C και C ++ αντικαθιστώντας την επιλογή συνδέσμου / ML ή / MT (στατικές βιβλιοθήκες μονής και πολλαπλών νημάτων) με / MD (πολλαπλών νημάτων CRT DLL).

Βήμα 3

Εξετάστε το ενδεχόμενο συγχώνευσης διαφορετικών τμημάτων του exe module σε ένα. Αυτή η μέθοδος δεν θα δώσει αξιοσημείωτο αποτέλεσμα εάν το αρχείο είναι αρκετά μεγάλο, αλλά με το αρχικό μέγεθος της μονάδας 20-30 kilobytes, το κέρδος μπορεί να είναι σημαντικό. Η επιλογή / συγχώνευση συνδέσμου σάς επιτρέπει να συγχωνεύσετε ενότητες. Μπορείτε να το ρυθμίσετε μέσω των παραμέτρων του έργου: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data ή χρησιμοποιώντας οδηγίες πραγμάτων στον πηγαίο κώδικα: #pragma comment (linker, "/ merge:.text =.data ") # σχόλιο pragma (linker," /merge:.reloc=.data")#pragma comment (linker, "/merge:.rdata=.data")#pragma comment (linker," / merge:.idata =.data ") Είναι επίσης λογικό να καθορίσουμε τα χαρακτηριστικά της ενότητας που προκύπτει: #pragma comment (linker," /section:.data, rwe ")

Βήμα 4

Μειώστε το μέγεθος του exe ορίζοντας την ελάχιστη τιμή του μεγέθους των μπλοκ κατά μήκος των ορίων των οποίων τα τμήματα είναι ευθυγραμμισμένα. Χρησιμοποιήστε την επιλογή / filealign linker που καθορίζεται με την επεξεργασία των ιδιοτήτων του έργου ή της οδηγίας pragma: #pragma comment (linker, "/ filealign: 0x200") Αυτή η μέθοδος είναι κατάλληλη για μικρές μονάδες

Βήμα 5

Προσπαθήστε να μειώσετε το μέγεθος του αρχείου exe δημιουργώντας το με επιλογές βελτιστοποίησης για να μειώσετε τον αριθμό του κώδικα του μηχανήματος. Αντικαταστήστε τις επιλογές μεταγλωττιστή / O2 ή / Od με το / O1.

Βήμα 6

Αντικαταστήστε το τυπικό στέλεχος DOS στο exe-module με το δικό σας, το οποίο θα έχει το ελάχιστο μέγεθος. Χρησιμοποιήστε την επιλογή / stub linker: #pragma comment (linker, "/stub:mystub.exe") Εδώ το mystub.exe είναι το όνομα του εκτελέσιμου αρχείου DOS που θα προστεθεί στη μονάδα exe ως στέλεχος.

Βήμα 7

Εξετάστε το ενδεχόμενο να καθορίσετε το δικό σας σημείο εισόδου στην εφαρμογή. Αυτό θα εξαλείψει τον κώδικα αρχικοποίησης των στατικών βιβλιοθηκών χρόνου εκτέλεσης. Χρησιμοποιήστε την επιλογή / εισαγωγή συνδέσμου, για παράδειγμα: #pragma comment (linker, "/ entry: MyStartup") άκυρη MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Βήμα 8

Εφαρμόστε βοηθητικά προγράμματα συσκευασίας όπως UPX, ASPack, Themida, PEC Compact στο τελικό αρχείο exe. Τα δεδομένα της ενότητας θα συμπιεστούν. Θα αποσυσκευαστούν στη μνήμη μετά την έναρξη της εφαρμογής. Αυτή η μέθοδος δίνει καλά αποτελέσματα για μεγάλα αρχεία exe που περιέχουν μεγάλο αριθμό στατικών δεδομένων με χαμηλή εντροπία (για παράδειγμα, DIB rasters στην ενότητα πόρων).

Συνιστάται: