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 enOG -hukommelse, der er tilbage på computeren til det andet program.
Med statisk hukommelsesallokering kan brugeren eller programmøren ikke specificere mængden af hukommelse, han eller hun vil have gemt, og programmereren kan heller ikke fortælle den statiske hukommelse at dumpe hukommelsen for 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 kun at holde fast i 1 MB eller mindre, hvilket vil spare nok systemhukommelse til at give andre programmer mulighed for 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 det kan indstilles i dette allokeringsskema.
Et potentielt problem med dynamisk hukommelsesallokering - en, der sjældent kommer i spil - 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.