Dallimi midis alokimit të memories statike dhe dinamike

Përmbajtje:

Dallimi midis alokimit të memories statike dhe dinamike
Dallimi midis alokimit të memories statike dhe dinamike

Video: Dallimi midis alokimit të memories statike dhe dinamike

Video: Dallimi midis alokimit të memories statike dhe dinamike
Video: AQUASCAPING MASTERCLASS BY JUAN PUCHADES - CHALLENGE YOURSELF, CREATE SOMETHING MEMORABLE! 2024, Nëntor
Anonim

Diferenca kryesore – Shpërndarja statike kundrejt shpërndarjes dinamike të memories

Në programim, është e nevojshme të ruhen të dhënat llogaritëse. Këto të dhëna ruhen në memorie. Vendndodhjet e memories për ruajtjen e të dhënave në programimin kompjuterik njihen si variabla. Variablat kanë një lloj specifik të dhënash. Prandaj, memoria ndahet për të ekzekutuar programet. Kujtesa mund të shpërndahet në dy mënyra. Ato janë alokimi i memories statike dhe alokimi dinamik i memories. Në alokimin e memories statike, pasi të ndahet memoria, ajo nuk mund të ndryshohet. Kujtesa nuk është e ripërdorshme. Por në alokimin dinamik të memories, pasi të ndahet memoria, ajo mund të ndryshohet. Dallimi kryesor midis alokimit të memories statike dhe dinamike është se në alokimin e memories statike pasi të ndahet memoria, madhësia e memories fiksohet ndërsa në alokimin dinamik të memories, pasi të ndahet memoria, madhësia e memories mund të ndryshohet.

Çfarë është Alokimi i memories statike?

Në alokimin e memories statike, memoria e alokuar është fikse. Pasi të ndahet memoria, ajo nuk mund të ndryshohet. Kujtesa nuk mund të rritet ose zvogëlohet. Për shembull, në gjuhën C nëse programuesi shkruan int x, që do të thotë se ndryshorja mund të ruajë një vlerë të plotë. Numri i bajteve varet nga kompjuteri. Mund të ketë edhe vargje. P.sh. int x [5]; Ky x është një grup i cili mund të ruajë një sekuencë të dhënash që janë të të njëjtit lloj. Mund të ruajë pesë elementë me numra të plotë. Nuk mund të ruajë më shumë se pesë elementë. Në Java, një grup mund të krijohet si, int arr=new int[5]; Vargu 'arr' mund të ruajë 5 vlera të plota dhe nuk mund të ruajë më shumë se kaq.

Dallimi midis alokimit të memories statike dhe dinamike
Dallimi midis alokimit të memories statike dhe dinamike
Dallimi midis alokimit të memories statike dhe dinamike
Dallimi midis alokimit të memories statike dhe dinamike

Figura 01: Metodat e alokimit të memories

Në alokimin e memories statike, pasi të ndahen variablat, ato mbeten të përhershme. Pas ndarjes fillestare, programuesi nuk mund të ndryshojë madhësinë e kujtesës. Nëse programuesi ka ndarë një grup që mund të ruajë 10 elementë, nuk është e mundur të ruhen vlera më shumë se ajo sasi e specifikuar. Nëse programuesi fillimisht ka ndarë një grup që mund të mbajë 10 elementë, por ka nevojë vetëm për 5 elementë, atëherë ka një humbje të memories. Ajo memorie nuk është më e nevojshme, por gjithashtu nuk është e mundur të ripërdoret memoria. Shpërndarja e memories statike është fikse, por zbatimi është i thjeshtë dhe i lehtë dhe është gjithashtu i shpejtë.

Çfarë është Alokimi Dinamik i Memories?

Ndonjëherë është e nevojshme të ndryshoni madhësinë e kujtesës. Pra, memoria mund të shpërndahet në mënyrë dinamike. Në varësi të futjeve dhe fshirjeve të elementeve të të dhënave, memoria mund të rritet ose tkurret. Njihet si shpërndarja dinamike e memories.

Në gjuhën C, skedari i kokës stdlib.h, ekzistojnë katër funksione për shpërndarjen dinamike të memories. Ato janë calloc, malloc, realloc dhe të lira. Funksioni malloc() shpërndan një madhësi të kërkuar të bajteve dhe kthen një tregues të zbrazët, duke treguar bajtin e parë të memories së alokuar. Funksioni calloc() shpërndan një madhësi të kërkuar të bajteve dhe i inicializon ato në zero. Pastaj kthen një tregues të zbrazët në kujtesë. Funksioni free() përdoret për të rialokuar memorien e alokuar. Dhe funksioni realloc mund të modifikojë memorien e alokuar më parë. Pas ndarjes së memories duke përdorur calloc ose malloc, madhësia e memories fiksohet, por ato mund të rriten ose zvogëlohen duke përdorur funksionin realloc. Në Java, koleksionet mund të përdoren për shpërndarje dinamike të memories.

Përparësia kryesore e alokimit dinamik të memories është se kursen memorie. Programuesi mund të ndajë memorie ose ta lëshojë atë sipas nevojës. Kujtesa mund të rialokohet gjatë ekzekutimit dhe mund të çlirojë memorien kur nuk kërkohet. Shpërndarja dinamike e memories është gjithashtu efikase sesa shpërndarja e memories statike. Një disavantazh është se zbatimi i alokimit dinamik të memories është kompleks.

Cilat janë ngjashmëritë ndërmjet shpërndarjes së memories statike dhe dinamike?

  • Të dy janë mekanizma të shpërndarjes së kujtesës.
  • Të dyja duhet të zbatohen nga programuesi manualisht.

Cili është ndryshimi midis alokimit të memories statike dhe dinamike?

Alokimi statik kundrejt memorjes dinamike

Ndarja e memories statike është një metodë e ndarjes së memories dhe pasi të ndahet memoria, ajo rregullohet. Alokimi dinamik i memories është një metodë e ndarjes së memories dhe pasi të ndahet memoria, ajo mund të ndryshohet.
Modifikimi
Në alokimin e memories statike, nuk është e mundur të ndryshohet përmasat pas ndarjes fillestare. Në alokimin dinamik të memories, memoria mund të minimizohet ose maksimizohet në përputhje me rrethanat.
Zbatim
Ndarja e memories statike është e lehtë për t'u zbatuar. Ndarja dinamike e memories është komplekse për t'u zbatuar.
Shpejtësia
Në memorien statike, ekzekutimi i alokimit është më i shpejtë se shpërndarja dinamike e memories. Në memorien dinamike, ekzekutimi i alokimit është më i ngadalshëm se alokimi statik i memories.
Përdorimi i memories
Në alokimin e memories statike, nuk mund të ripërdoret memoria e papërdorur. Ndarja dinamike e memories lejon ripërdorimin e memories. Programuesi mund të ndajë më shumë memorie kur kërkohet. Ai mund ta lëshojë kujtesën kur është e nevojshme.

Përmbledhje – Shpërndarja statike kundrejt shpërndarjes dinamike të memories

Në programim, shpërndarja e memories statike dhe shpërndarja dinamike e memories janë dy mekanizma për ndarjen e memories. Dallimi midis alokimit të memories statike dhe dinamike është se në alokimin e memories statike pasi të ndahet memoria, madhësia e memories fiksohet ndërsa në ndarjen dinamike të memories, pasi të ndahet memoria, madhësia e kujtesës mund të ndryshohet. Programuesi mund të vendosë nëse memoria duhet të jetë statike apo dinamike në varësi të aplikacionit.

Shkarkoni PDF-në e ndarjes së kujtesës statike kundër dinamike

Mund të shkarkoni versionin PDF të këtij artikulli dhe ta përdorni për qëllime jashtë linje sipas shënimit të citimit. Ju lutemi shkarkoni versionin PDF këtu: Diferenca midis ndarjes së memories statike dhe dinamike

Recommended: