Διαρροές μνήμης
Η διαδικασία διαρροής μνήμης αντιπροσωπεύει τη σταδιακή αύξηση του όγκου της μνήμης RAM που καταναλώνει ένα πρόγραμμα που εκτελείται. Συνήθως είναι αποτέλεσμα ενός σφάλματος που έγινε στο πρόγραμμα, λόγω του οποίου η αχρησιμοποίητη μνήμη δεν απελευθερώνεται.
Οι διαρροές μνήμης είναι ιδιαίτερα επικίνδυνες για προγράμματα που λειτουργούν για μεγάλο χρονικό διάστημα χωρίς επανεκκίνηση. Σε αυτή την περίπτωση, μετά από κάποιο χρονικό διάστημα ένα τέτοιο πρόγραμμα μπορεί να εξαντλήσει ολόκληρο τον διαθέσιμο όγκο της μνήμης RAM, κάτι που θα οδηγήσει σε επείγοντα σταμάτημα του προγράμματος ή, ακόμα χειρότερα, σε εσφαλμένη λειτουργία.
Υπάρχουν οι ακόλουθοι τρόποι για την πρόληψη των διαρροών μνήμης:
- Η χρήση συλλεκτών απορριμμάτων (garbage collectors), οι οποίοι απελευθερώνουν την αχρησιμοποίητη μνήμη, αλλά ταυτόχρονα αφαιρούν μέρος των πόρων του συστήματος για τη λειτουργία τους, κάτι που οδηγεί σε επιβραδύνσεις στη λειτουργία του ή σε κολλήματα.
- Η επανεκκίνηση του προγράμματος με τη βοήθεια ενός εξωτερικού προγράμματος, συνέπεια της οποίας είναι μετά το τέλος της λειτουργίας του προγράμματος όλη η μνήμη να επιστρέφεται ξανά στο σύστημα και οι διαρροές δεν γίνονται τόσο μεγάλες.
- Η αποφυγή της δυναμικής κατανομής μνήμης, κάτι που από την άλλη πλευρά αποκλείει τέτοια σφάλματα, αλλά περιορίζει και τη λειτουργικότητα των προγραμμάτων.
- Η χρήση δείκτες ιδιοκτησίας (owning pointers) για να ευθυγραμμιστεί ο χρόνος ζωής του δείκτη και ο χρόνος ζωής του αντικειμένου στο οποίο αναφέρεται. Ωστόσο, αυτός ο τρόπος δεν είναι κατάλληλος για κυκλικές αναφορές μεταξύ αντικειμένων.
Δείτε επίσης
-
η περίοδος χρόνος εκτέλεσης,
κατά την οποία εκτελείται το πρόγραμμα -
Αρχικά δεδομένα,
που αντιπροσωπεύουν τη θέση των δεδομένων -
το σύνολο προγραμμάτων Λογισμικό,
που εξασφαλίζει τη λειτουργία των εφαρμογών -
το σύνολο προγραμμάτων Λειτουργικό Σύστημα,
που εξασφαλίζει τον έλεγχο των συστημάτων του υπολογιστή