Cos'è l'allocazione di memoria dinamica?
L'allocazione dinamica della memoria, chiamata anche allocazione di memoria basata su heap, è un tipo di gestione della memoria che è nettamente contrastata dall'allocazione della memoria statica.Nell'allocazione dinamica della memoria, il programmatore indica al computer esattamente quanta memoria assegnare per ciascun programma e quanto tempo trattenersi sulla memoria.Ciò risolve molti dei problemi che si verificano nell'allocazione della memoria statica, come un uso eccessivo di memoria e programmi bloccati.Mentre risolve molti problemi, se il programmatore si dimentica di dire alla memoria da scaricare, la memoria dinamica può diventare un problema.
I computer, per impostazione predefinita, usano l'allocazione della memoria statica.Ciò significa che la memoria tiene i programmi quando vengono utilizzati, anche se il programma non viene più utilizzato o se la memoria trattenuta diventa pericolosa o un ostacolo alle prestazioni.Ad esempio, se l'utente smette di eseguire un programma che prende 2 megabyte (MB) su una macchina da 3 MB e un secondo programma necessita di un altro 2 MB, il secondo programma non funzionerà.Questo perché non è rimasta abbastanza memoria nel computer per l'altro programma.
Con allocazione della memoria statica, l'utente o il programmatore non possono specificare la quantità di memoria che desidera memorizzata, né il programmatore può dire alla memoria statica di scaricarela memoria per liberare le risorse.Questo è il motivo per cui gli utenti avanzati utilizzano spesso l'allocazione di memoria dinamica.Il programmatore è in grado di controllare tutto ciò che riguarda la memoria, incluso quanto tempo trattenersi sulle risorse.
Ad esempio, il programmatore può impostare l'allocazione della memoria dinamica per trattenere solo 1 MB o meno, il che salverebbe sufficiente memoria di sistema per consentire ad altriprogrammi da aprire.Questo può essere fatto perché la memoria statica di solito si basa su tutto ciò che riguarda il programma, mentre la memoria dinamica consente ai programmatori di impostarlo a un valore inferiore che contiene alcuni dati, ma non tutto.Allo stesso tempo, sarà ancora necessaria la memoria statica e può essere impostata in questo schema di allocazione.
Un potenziale problema con l'allocazione dinamica della memoria e Mdash;uno che raramente entra in gioco mdash;è che la memoria dinamica può riempire se il programmatore dimentica di impostare un valore di tempo.Se non viene impostato alcun valore temporale, a differenza della memoria statica che alla fine rilascerà la memoria, la memoria dinamica manterrà le informazioni.Se il programma ha un'applicazione di scarico della spazzatura e la maggior parte lo fa, si attiverà dopo un certo periodo di tempo per cancellare la memoria.È ancora meglio praticare impostare un valore temporale per l'allocazione della memoria.