Skip to main content

Hvad er dynamisk hukommelsesallokering?

Dynamisk hukommelsesallokering, også kaldet Heap-baseret hukommelsesallokering, er en type hukommelsesstyring, der er skarpt kontrasteret af statisk hukommelsesallokering.I dynamisk hukommelsesallokering fortæller programmereren computeren nøjagtigt, hvor meget hukommelse der skal tildeles til hvert program, og hvor længe man skal holde fast i hukommelsen.Dette løser mange af de problemer, der forekommer i statisk hukommelsesallokering, såsom overforbrug af hukommelse og stoppede programmer.Mens det løser mange problemer, hvis programmereren glemmer at fortælle hukommelsen at dumpe, kan den dynamiske hukommelse blive et problem.

Computere, som standard, skal du bruge statisk hukommelsesallokering.Dette betyder, at hukommelsen gælder på programmer, når de bruges, selvom programmet ikke længere bruges, eller hvis den holdte hukommelse bliver farlig eller en hindring for ydeevne.For eksempel, hvis brugeren holder op med at køre et program, der tager 2 megabyte (MB) på en 3 MB -maskine, og et andet program har brug for yderligere 2 MB, fungerer det andet program ikke.Dette skyldes, at der ikke er nok hukommelse tilbage på computeren til det andet program.

Med statisk hukommelsesallokering kan brugeren eller programmøren ikke specificere mængden af hukommelse, han eller hun ønsker, der er gemt, og heller ikke kan programmereren fortælle den statiske hukommelse at dumpeHukommelsen til at frigøre ressourcer.Dette er grunden til, at avancerede brugere ofte bruger dynamisk hukommelsesallokering.Programmereren er i stand til at kontrollere alt om hukommelsen, herunder hvor længe man skal holde fast i ressourcerne.

For eksempel kan programmereren indstille dynamisk hukommelsesallokering til kunprogrammer til at åbne.Dette kan gøres, fordi den statiske hukommelse normalt holder på alt om programmet, mens dynamisk hukommelse giver programmerere mulighed for at indstille den til en lavere værdi, der indeholder nogle data, men ikke alt.På samme tid er der stadig behov for statisk hukommelse, og den kan indstilles i dette allokeringsskema.

Et potentielt problem med dynamisk hukommelsesallokering mdash;en, der sjældent kommer i spil mdash;er, at den dynamiske hukommelse kan udfylde, hvis programmereren glemmer at indstille en tidsværdi.Hvis der ikke er indstillet nogen tidsværdi, i modsætning til statisk hukommelse, der til sidst frigiver hukommelsen, vil dynamisk hukommelse indeholde informationen.Hvis programmet har en affaldsdump -applikation, og de fleste gør det, aktiveres det efter en vis tid til at rydde hukommelsen.Det er stadig bedste praksis at indstille en tidsværdi for hukommelsesallokeringen.