διαρροή μνήμης είναι ένα ανεπιθύμητο χρήση μνήμης από ένα πρόγραμμα υπολογιστή , όπου το πρόγραμμα διαθέτει μνήμη για τη χρήση του και αδυνατεί να βρω τον ιδιοκτήτη του όταν η μνήμη δεν είναι πλέον σε χρήση . Αυτό το κομμάτι της μνήμης δεν θα είναι πλέον στη διάθεση του προγράμματος ηλεκτρονικού υπολογιστή . Ένα πρόγραμμα που διαρρέει αρκετή μνήμη πάνω από αρκετό διάστημα μπορεί να προκαλέσει το σύστημα να τρέχει από τη διαθέσιμη μνήμη , η οποία μπορεί να προκαλέσει το σύστημα πρόγραμμα ή τον υπολογιστή για να αποτύχει . Διαρροές μνήμης μπορεί επίσης να προκαλέσει ένα σύστημα για να επιβραδύνει σε μια μη ικανοποιητική ταχύτητα , λόγω αλώνισμα μνήμης . Προγράμματα που τρέχουν για μεγάλο χρονικό διάστημα, εκτελέστε πολλές κατανομές ή εκχώρηση μνήμης σε μεγάλα κομμάτια μπορεί να είναι ιδιαίτερα επιρρεπείς σε επικίνδυνες διαρροές μνήμης .
Εικόνων Χρησιμοποιήστε Καλή Κωδικοποίηση πρακτικές
Η
Η καλύτερος τρόπος για να βεβαιωθείτε ότι το πρόγραμμα δεν υπάρχει διαρροή μνήμης είναι να γράψει καλό κώδικα που διαχειρίζεται κατάλληλα τους πόρους του συστήματος . Βεβαιωθείτε ότι για κάθε κλήση συνάρτησης που διαθέτει τη μνήμη , υπάρχει μια αντίστοιχη κλήση που αποδεσμεύει τη μνήμη . Μερικές γλώσσες όπως η Java , C # , VB.NET και παρέχουν συλλογή των απορριμμάτων , όπου το σύστημα ελέγχει τακτικά ότι κατανεμημένη μνήμη είναι ακόμα σε χρήση . Ενώ αυτά τα συστήματα δεν εμποδίζουν τις διαρροές μνήμης εντελώς, είναι λιγότερο πιθανό ότι θα συμβεί . Άλλες γλώσσες , όπως η C + + , επιτρέπουν την κατανομή στοίβα , όπου ένα κομμάτι της μνήμης deallocated αυτόματα μόλις η μεταβλητή αναφοράς που βγαίνει από το πεδίο εφαρμογής . Με τη χρήση τη σωστή γλώσσα για την εργασία και τη διατήρηση καλών πρακτικών γραπτώς λογισμικού , πολλές διαρροές μνήμης μπορεί να αποφευχθεί τελείως .
Η Δημιουργία διαχείριση μνήμης
Η
Μερικές υπολογιστή προγράμματα απαιτούν τόσο πολύ κώδικα για να τρέξει ότι η ανάγνωση μέσω του προγράμματος για να βρείτε όπου η μνήμη έχει διαρρεύσει δεν είναι απλά εφικτή . Σε αυτές τις περιπτώσεις , μπορεί να έχει νόημα να γράψω ένα διαχειριστή στοιχείο μνήμης στο πρόγραμμα . Το λογισμικό θα έχουν στη συνέχεια μια ενιαία διεπαφή για την κατανομή τυχόν κομμάτια της μνήμης , και ο διαχειριστής παρακολουθεί το πού και το πώς αυτά τα κομμάτια που διατίθενται . Στην απλούστερη μορφή του , ο διαχειριστής απλά παρέχει ανατροφοδότηση, επιτρέποντας στον προγραμματιστή να δούμε πώς χρησιμοποιείται πολύ μνήμη , και ποια συστατικά το χρησιμοποιούν . Μπορεί επίσης να παρέχει τη συλλογή σκουπιδιών και να ελέγχουν το πώς η μνήμη κατανέμεται και deallocated , δίνοντας ένα προγραμματιστή μόνο ένα μέρος για να ψάξουν για διαρροές μνήμης , αντί του συνόλου του κώδικα για το σύνολο του προγράμματος .
Εικόνων Δημιουργήστε ένα πρόγραμμα δοκιμής
Η
Κάποιος μπορεί συχνά να δούμε τη μνήμη που χρησιμοποιείται από ένα πρόγραμμα με ένα εργαλείο του συστήματος , όπως η Διαχείριση εργασιών των Windows ή "top " σε Unix /Linux για να καθοριστεί αν η μνήμη είναι να διαρρεύσει . Αυτό δεν είναι πάντα απόδειξη μιας διαρροής μνήμης , αλλά μπορεί να προσφέρει κάποια αρχική ανατροφοδότηση . Μερικές φορές είναι δυνατόν να γράψετε ένα απλό πρόγραμμα που ελέγχει τα διάφορα συστατικά του ένα κομμάτι του λογισμικού για να διαπιστώσετε αν υπάρχει διαρροή μνήμης . Το πρόγραμμα δοκιμών μπορεί δυναμικά να καθορίσουν ή να δώσει εκ των προτέρων γνώση του πόση μνήμη ένα πρόγραμμα υπολογιστή θα πρέπει να χρησιμοποιούν . Τότε διασφαλίζει ότι η χρησιμοποιούμενη ποσότητα είναι η ποσότητα η οποία θα πρέπει να χρησιμοποιείται . Εάν παρουσιαστεί διαρροή μνήμης , το πρόγραμμα δοκιμών παρέχει πληροφορίες σχετικά με το πώς συνέβη αυτό , επιτρέποντας στον προγραμματιστή να καθορίσει τη διαρροή .
Εικόνων Λογισμικό Τρίτων
Η
Οι προγραμματιστές μπορούν να χρησιμοποιήσουν πολλές τρίτες -party προγράμματα και τις βιβλιοθήκες για να ελέγξετε εάν το λογισμικό τους είναι διαρροή μνήμης . Στο Microsoft . NET Framework , μπορεί κανείς να επιτρέψει τον έλεγχο διαρροών μνήμης χρησιμοποιώντας τις debug εκδόσεις των αρμοδιοτήτων κατανομής μνήμης . Στο Linux , Unix και Mac , μπορείτε να χρησιμοποιήσετε εργαλεία , όπως Valgrind , dmalloc και Ασφαλίστε + + για να απομονώσει μια διαρροή μνήμης . Πολλά προγράμματα εντοπισμού σφαλμάτων μνήμης είναι επίσης διαθέσιμη για τα Windows . Το καλύτερο εργαλείο για την εργασία εξαρτάται από το περιβάλλον ανάπτυξης και η γλώσσα που χρησιμοποιείται , καθώς και τα ιδιαίτερα χαρακτηριστικά του προγράμματος για τον εντοπισμό σφαλμάτων , όπως το μέγεθος , τις απαιτήσεις ταχύτητας και τον τρόπο με τον οποίο αλληλεπιδρά με το σύστημα . Υπάρχουν πολλά εργαλεία από τα οποία να επιλέξει , και μπορούν να είναι ένα όφελος για τον προγραμματιστή απογοητευμένοι κουρασμένοι από την αναζήτηση για το τελευταίο φευγαλέα διαρροή .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα