Skip to main content

Hva er dynamisk minnetildeling?

Dynamisk minnetildeling, også kalt Heap-basert minnetildeling, er en type minnestyring som er kraftig kontrast av statisk minnetildeling.I dynamisk minnetildeling forteller programmereren datamaskinen nøyaktig hvor mye minne som skal tildeles for hvert program og hvor lenge du skal holde på minnet.Dette løser mange av problemene som oppstår i statisk minnetildeling, for eksempel overforbruk av minne og stoppede programmer.Selv om det løser mange problemer, hvis programmereren glemmer å fortelle minnet om å dumpe, kan det dynamiske minnet bli et problem.

Datamaskiner bruker som standard statisk minnetildeling.Dette betyr at minnet holder fast på programmer når de brukes, selv om programmet ikke lenger brukes eller om det holdt minnet blir farlig eller en hindring for ytelse.For eksempel, hvis brukeren slutter å kjøre et program som tar 2 megabyte (MB) på en 3 MB -maskin, og et andre program trenger ytterligere 2 MB, vil det andre programmet ikke fungere.Dette er fordi det ikke er nok minne igjen i datamaskinen for det andre programmet.

Med statisk minnetildeling, kan brukeren eller programmereren ikke spesifisere mengden minne han eller hun ønsker lagret, og heller ikke kan programmereren fortelle det statiske minnet å dumpeminnet for å frigjøre ressurser.Dette er grunnen til at avanserte brukere ofte bruker dynamisk minnetildeling.Programmereren er i stand til å kontrollere alt om minnet, inkludert hvor lang tid å holde på ressursene.

programmer å åpne.Dette kan gjøres fordi det statiske minnet vanligvis holder på alt om programmet, mens dynamisk minne lar programmerere angi det til en lavere verdi som har noen data, men ikke alt.Samtidig vil det fortsatt være nødvendig med statisk minne, og det kan settes i dette tildelingsskjemaet. Et potensielt problem med dynamisk minnetildeling og mdash;En som sjelden kommer inn i spill og mdash;er at det dynamiske minnet kan fylles opp hvis programmereren glemmer å sette en tidsverdi.Hvis ingen tidsverdi er satt, i motsetning til statisk minne som til slutt vil frigjøre minnet, vil dynamisk minne holde på informasjonen.Hvis programmet har en søppeldump -applikasjon, og de fleste gjør det, vil det aktivere etter en viss tid for å fjerne minnet.Det er fremdeles beste praksis å sette en tidsverdi for minnetildeling.