Forskjellen mellom statisk og dynamisk minneallokering

Nøkkelforskjell - Statisk vs Dynamisk minneallokering
 

I programmeringen er det nødvendig å lagre beregningsdata. Disse dataene lagres i minnet. Minnesteder for lagring av data i dataprogrammering er kjent som variabler. Variablene har en bestemt datatype. Derfor er minnet tildelt for å kjøre programmene. Minne kan tildeles på to måter. De er statisk minneallokering og dynamisk minneallokering. I statisk minneallokering, når minnet er tildelt, kan det ikke endres. Minnet er ikke gjenbrukbart. Men i dynamisk minneallokering, når minnet er tildelt, kan det endres. De nøkkelforskjell mellom statisk og dynamisk minneallokering er det i statisk minneallokering når minnet er tildelt, blir minnestørrelsen fast mens den er i dynamisk minneallokering, når minnet er tildelt, kan minnestørrelsen endres.

INNHOLD

1. Oversikt og nøkkelforskjell
2. Hva er Statisk minneallokering
3. Hva er dynamisk minneallokering
4. Likheter mellom statisk og dynamisk minneallokering
5. Side ved side-sammenligning - Statisk vs dynamisk minneallokering i tabellform
6. Sammendrag

Hva er Statisk minneallokering?

Ved statisk minneallokering er det tildelte minnet løst. Når minnet er tildelt, kan det ikke endres. Minnet kan ikke økes eller reduseres. For eksempel, i C-språk hvis programmereren skriver int x, noe som betyr at variabelen kan lagre et heltall. Antall bytes avhenger av datamaskinen. Det kan også være arrayer. F.eks int x [5]; Denne x er en matrise som kan lagre en sekvens av data som er av samme type. Det kan lagre fem heltall elementer. Det kan ikke lagre mer enn fem elementer. I Java kan en matrise opprettes som, int ar [] = new int [5]; Arrayet 'arr' kan lagre 5 heltallverdier og kan ikke lagre mer enn det.

Figur 01: Minnetildelingsmetoder

Ved statisk minneallokering, når variablene er tildelt, forblir de permanente. Etter den første tildelingen kan programmøren ikke endre størrelsen på minnet. Hvis programmereren tilordnet en matrise som kan lagre 10 elementer, er det ikke mulig å lagre verdier mer enn det angitte beløpet. Hvis programmereren i utgangspunktet tildelte en matrise som kan inneholde 10 elementer, men bare trengte 5 elementer, så er det et minneutslipp. Det minnet er ikke lenger nødvendig, men det er heller ikke mulig å gjenbruke minnet. Statisk minneallokering er fast, men implementeringen er enkel og enkel, og den er også rask.

Hva er dynamisk minneallokering?

Noen ganger er det nødvendig å endre størrelsen på minnet. Så minne kan tildeles dynamisk. Avhengig av innsetting og sletning av dataelementene, kan minnet vokse eller krympe. Det er kjent som dynamisk minneallokering.

I C-språk, stdlib.h header-fil, er det fire funksjoner for dynamisk minneallokering. De er calloc, malloc, realloc og gratis. Funksjonen malloc () tildeler en ønsket størrelsen på byte og returnerer en tomrompeker, og peker den første byten til det tildelte minnet. Funksjonen calloc () tildeler en ønsket størrelsen på byte og initialiserer dem til null. Deretter returneres en tomrompeker til minnet. Funksjonen gratis () brukes til å omfordele det tildelte minnet. Og reallocfunksjonen kan endre det tidligere tildelte minnet. Etter tildeling av minne ved bruk av calloc eller malloc, er minnestørrelsen fast, men de kan økes eller reduseres ved hjelp av reallokfunksjonen. I Java kan samlinger brukes til dynamisk minneallokering.

Den største fordelen med dynamisk minneallokering er at den sparer minne. Programmereren kan tildele minne eller frigjøre minnet etter behov. Minne kan omfordeles under utførelse og kan frigjøre minnet når det ikke er nødvendig. Dynamisk minneallokering er også effektiv enn statisk minneallokering. En ulempe er at implementering av dynamisk minneallokering er komplisert.

Hva er likhetene mellom statisk og dynamisk minneallokering?

  • Begge er minneallokeringsmekanismer.
  • Begge bør implementeres av programmøren manuelt.

Hva er forskjellen mellom statisk og dynamisk minneallokering?

Statisk vs Dynamisk Memory Allocation

Statisk minneallokering er en metode for å tildele minne, og når minnet er tildelt, er det løst. Dynamisk minneallokering er en metode for å tildele minne, og når minnet er tildelt, kan det endres.
 modifisering
Ved statisk minnetildeling er det ikke mulig å endre størrelsen etter den første tildelingen. Ved dynamisk minneallokering kan minnet minimeres eller maksimeres tilsvarende.
Gjennomføring
Statisk minneallokering er enkel å implementere. Dynamisk minneallokering er komplisert å implementere.
 Hastighet
I statisk minne er tildelingseksjonen raskere enn dynamisk minneallokering. I dynamisk minne er tildelingseksjonen langsommere enn statisk minneallokering.
Minneutnyttelse
Ved statisk minneallokering, kan ikke gjenbrukes ubrukt minne. Dynamisk minneallokering tillater gjenbruk av minnet. Programmereren kan tildele mer minne når det er nødvendig. Han kan frigjøre minnet når det er nødvendig.

Sammendrag - Statisk vs Dynamisk Memory Allocation

Ved programmering er Statisk minneallokering og dynamisk minneallokering to mekanismer for allokering av minne. Forskjellen mellom statisk og dynamisk minneallokering er at i statisk minneallokering når minnet er tildelt, blir minnestørrelsen fast mens den er i dynamisk minneallokering, når minnet er tildelt, kan minnestørrelsen endres. Programmereren kan bestemme om minnet skal være statisk eller dynamisk, avhengig av applikasjonen.

Last ned PDF-filen for Statisk vs Dynamisk Memory Allocation

Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til off-line formål som per sitatnotat. Vennligst last ned PDF-versjonen her: Forskjellen mellom statisk og dynamisk minneallokering

Henvisning:

1.Kayal, Somnath. "SOMNATH KAYAL." Forskjellen mellom statisk minneallokering og dynamisk minneallokering, 1. januar 1970. Tilgjengelig her 
2.tutorialspoint.com. "Arrays in C." Poenget. Tilgjengelig her 
3.nareshtechnologies. Statisk minne vs dynamisk minne | C Language Tutorial, Naresh I Technologies, 19. september 2016. Tilgjengelig her