Skip to main content

Τι είναι η δυναμική κατανομή μνήμης;

Η κατανομή της δυναμικής μνήμης, που ονομάζεται επίσης κατανομή μνήμης με βάση το HEAP, είναι ένας τύπος διαχείρισης μνήμης που αντιπαραβάλλεται απότομα με τη στατική κατανομή μνήμης.Στη δυναμική κατανομή μνήμης, ο προγραμματιστής λέει στον υπολογιστή ακριβώς πόση μνήμη θα διαθέσει για κάθε πρόγραμμα και πόσο καιρό να κρατήσει τη μνήμη.Αυτό λύνει πολλά από τα ζητήματα που συμβαίνουν στην κατανομή στατικής μνήμης, όπως η υπερβολική χρήση της μνήμης και τα καθορισμένα προγράμματα.Ενώ λύνει πολλά ζητήματα, εάν ο προγραμματιστής ξεχάσει να πει τη μνήμη για να πετάξει, τότε η δυναμική μνήμη μπορεί να γίνει ένα ζήτημα.

Οι υπολογιστές, από προεπιλογή, χρησιμοποιούν τη στατική κατανομή μνήμης.Αυτό σημαίνει ότι η μνήμη διατηρεί τα προγράμματα όταν χρησιμοποιούνται, ακόμη και αν το πρόγραμμα δεν χρησιμοποιείται πλέον ή εάν η μνήμη που κρατούσε γίνεται επικίνδυνη ή εμπόδιο για την απόδοση.Για παράδειγμα, εάν ο χρήστης σταματήσει να τρέχει ένα πρόγραμμα που παίρνει 2 megabytes (MB) σε μηχανή 3 MB και ένα δεύτερο πρόγραμμα χρειάζεται άλλα 2 MB, το δεύτερο πρόγραμμα δεν θα λειτουργήσει.Αυτό οφείλεται στο γεγονός ότι δεν υπάρχει αρκετή μνήμη στον υπολογιστή για το άλλο πρόγραμμα.

Με τη στατική κατανομή μνήμης, ο χρήστης ή ο προγραμματιστής δεν μπορούν να καθορίσουν την ποσότητα μνήμης που θέλει να αποθηκευτεί, ούτε ο προγραμματιστής να πει τη στατική μνήμη να πετάξειΗ μνήμη για την απελευθέρωση των πόρων.Αυτός είναι ο λόγος για τον οποίο οι προηγμένοι χρήστες χρησιμοποιούν συχνά τη δυναμική κατανομή μνήμης.Ο προγραμματιστής είναι σε θέση να ελέγχει τα πάντα σχετικά με τη μνήμη, συμπεριλαμβανομένου του χρόνου διατήρησης των πόρων.προγράμματα για άνοιγμα.Αυτό μπορεί να γίνει επειδή η στατική μνήμη συνήθως κρατά τα πάντα για το πρόγραμμα, ενώ η δυναμική μνήμη επιτρέπει στους προγραμματιστές να το ρυθμίσουν σε χαμηλότερη τιμή που κρατά κάποια δεδομένα, αλλά όχι όλα.Ταυτόχρονα, θα χρειαστεί ακόμα στατική μνήμη και μπορεί να ρυθμιστεί σε αυτό το σχήμα κατανομής.

Ένα πιθανό πρόβλημα με τη δυναμική κατανομή μνήμης mdash;ένα που σπάνια μπαίνει στο παιχνίδι mdash;είναι ότι η δυναμική μνήμη μπορεί να γεμίσει εάν ο προγραμματιστής ξεχάσει να ρυθμίσει μια τιμή χρόνου.Εάν δεν έχει οριστεί τιμή χρόνου, σε αντίθεση με τη στατική μνήμη που τελικά θα απελευθερώσει τη μνήμη, η δυναμική μνήμη θα κρατήσει τις πληροφορίες.Εάν το πρόγραμμα έχει μια εφαρμογή απορριμμάτων και οι περισσότεροι, θα ενεργοποιηθούν μετά από ένα συγκεκριμένο χρονικό διάστημα για να καθαρίσει τη μνήμη.Είναι ακόμα η καλύτερη πρακτική να ορίσετε μια τιμή χρόνου για την κατανομή μνήμης.