Staattisen ja dynaamisen muistin varauksen ero

Sisällysluettelo:

Staattisen ja dynaamisen muistin varauksen ero
Staattisen ja dynaamisen muistin varauksen ero

Video: Staattisen ja dynaamisen muistin varauksen ero

Video: Staattisen ja dynaamisen muistin varauksen ero
Video: Hyper V: Advanced Topics Performance NUMA and Shielded VMs 2024, Marraskuu
Anonim

Avainero – staattinen vs. dynaaminen muistin varaus

Ohjelmoinnissa on tarpeen tallentaa laskennallisia tietoja. Nämä tiedot tallennetaan muistiin. Muistipaikat tietojen tallentamiseksi tietokoneohjelmoinnissa tunnetaan muuttujina. Muuttujilla on tietty tietotyyppi. Siksi muisti on varattu ohjelmien suorittamiseen. Muisti voidaan varata kahdella tavalla. Ne ovat staattinen muistin varaus ja dynaaminen muistin varaus. Staattisessa muistin varauksessa, kun muisti on varattu, sitä ei voi muuttaa. Muistia ei voi käyttää uudelleen. Mutta dynaamisessa muistin varauksessa, kun muisti on varattu, sitä voidaan muuttaa.avainero staattisen ja dynaamisen muistin allokoinnin välillä on se, että staattisessa muistin varauksessa muistin koko on kiinteä, kun taas dynaamisessa muistin varaamisessa muistin kokoa voidaan muuttaa, kun muisti on varattu.

Mikä on staattinen muistin varaus?

Staattisessa muistin varauksessa varattu muisti on kiinteä. Kun muisti on varattu, sitä ei voi muuttaa. Muistia ei voi lisätä tai vähentää. Esimerkiksi C-kielellä, jos ohjelmoija kirjoittaa int x, mikä tarkoittaa, että muuttuja voi tallentaa kokonaisluvun. Tavujen määrä riippuu tietokoneesta. Siellä voi olla myös taulukoita. Esim. int x [5]; Tämä x on taulukko, joka voi tallentaa sekvenssin samantyyppisiä tietoja. Se voi tallentaa viisi kokonaislukuelementtiä. Se ei voi tallentaa enempää kuin viisi elementtiä. Javassa taulukko voidaan luoda muodossa, int arr=new int[5]; Taulukko 'arr' voi tallentaa viisi kokonaislukuarvoa, mutta se ei voi tallentaa enempää.

Ero staattisen ja dynaamisen muistin allokoinnin välillä
Ero staattisen ja dynaamisen muistin allokoinnin välillä
Ero staattisen ja dynaamisen muistin allokoinnin välillä
Ero staattisen ja dynaamisen muistin allokoinnin välillä

Kuva 01: Muistinvarausmenetelmät

Staattisessa muistin varauksessa, kun muuttujat on varattu, ne pysyvät pysyvinä. Alkuperäisen varauksen jälkeen ohjelmoija ei voi muuttaa muistin kokoa. Jos ohjelmoija on varannut taulukon, joka voi tallentaa 10 elementtiä, ei ole mahdollista tallentaa enempää arvoja kuin määritetty määrä. Jos ohjelmoija varasi alun perin taulukon, johon mahtuu 10 elementtiä, mutta tarvitsi vain 5 elementtiä, on muistin hukkaa. Sitä muistia ei enää tarvita, mutta sitä ei myöskään voi käyttää uudelleen. Staattinen muistin varaus on kiinteä, mutta toteutus on yksinkertaista ja helppoa, ja se on myös nopea.

Mikä on dynaaminen muistin varaus?

Joskus on tarpeen muuttaa muistin kokoa. Joten muistia voidaan varata dynaamisesti. Tietoelementtien lisäyksistä ja poistoista riippuen muisti voi kasvaa tai pienentyä. Se tunnetaan nimellä dynaaminen muistin varaus.

C-kielessä stdlib.h-otsikkotiedostossa on neljä funktiota dynaamiseen muistin varaamiseen. Ne ovat calloc, malloc, realloc ja ilmaisia. Funktio malloc() varaa vaaditun koon tavuja ja palauttaa void-osoittimen, joka osoittaa varatun muistin ensimmäisen tavun. Funktio calloc() varaa vaaditun koon tavuja ja alustaa ne nollaan. Palauttaa sitten tyhjän osoittimen muistiin. Free()-funktiota käytetään varatun muistin uudelleenallokointiin. Ja realloc-toiminto voi muokata aiemmin varattua muistia. Kun muisti on allokoitu callocilla tai mallocilla, muistin koko on kiinteä, mutta niitä voidaan kasvattaa tai pienentää realloc-funktiolla. Javassa kokoelmia voidaan käyttää dynaamiseen muistin varaamiseen.

Dynaamisen muistin varauksen tärkein etu on, että se säästää muistia. Ohjelmoija voi varata muistia tai vapauttaa muistia tarpeen mukaan. Muisti voidaan jakaa uudelleen suorituksen aikana ja se voi vapauttaa muistia, kun sitä ei tarvita. Dynaaminen muistin varaus on myös tehokasta kuin staattinen muistin varaus. Yksi haittapuoli on, että dynaamisen muistin varauksen toteuttaminen on monimutkaista.

Mitä yhtäläisyyksiä staattisen ja dynaamisen muistin varauksen välillä on?

  • Molemmat ovat muistinvarausmekanismeja.
  • Ohjelmoijan tulee ottaa molemmat käyttöön manuaalisesti.

Mitä eroa on staattisen ja dynaamisen muistin varaamisen välillä?

Staattinen vs. dynaaminen muistin varaus

Staattinen muistin varaus on menetelmä muistin varaamiseen, ja kun muisti on varattu, se on kiinteä. Dynaaminen muistin varaus on menetelmä muistin varaamiseen, ja kun muisti on varattu, sitä voidaan muuttaa.
Muutos
Staattisessa muistin varauksessa kokoa ei voi muuttaa alkuperäisen varauksen jälkeen. Dynaamisessa muistin varauksessa muistia voidaan minimoida tai maksimoida vastaavasti.
Toteutus
Staattinen muistin varaus on helppo toteuttaa. Dynaaminen muistin varaus on monimutkaista toteuttaa.
Nopeus
Staattisessa muistissa varauksen suoritus on nopeampaa kuin dynaaminen muistin varaus. Dynaamisessa muistissa varauksen suoritus on hitaampaa kuin staattisen muistin varauksen.
Muistin käyttö
Käyttämätöntä muistia ei voi käyttää uudelleen staattisessa muistin varauksessa. Dynaaminen muistin varaus mahdollistaa muistin uudelleenkäytön. Ohjelmoija voi varata lisää muistia tarvittaessa. Hän voi vapauttaa muistin tarvittaessa.

Yhteenveto – Staattinen vs. dynaaminen muistin varaus

Ohjelmoinnissa staattinen muistin varaus ja dynaaminen muistin varaus ovat kaksi mekanismia muistin varaamiseen. Ero staattisen ja dynaamisen muistin allokoinnin välillä on se, että staattisessa muistin allokoinnissa muistin koko on kiinteä, kun taas dynaamisessa muistin varauksessa muistin kokoa voidaan muuttaa, kun muisti on varattu. Ohjelmoija voi päättää, onko muistin oltava staattinen vai dynaaminen sovelluksesta riippuen.

Lataa PDF staattisen vs. dynaamisen muistin allokoinnista

Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainaushuomautuksen mukaisesti. Lataa PDF-versio tästä: Ero staattisen ja dynaamisen muistin allokoinnin välillä

Suositeltava: