Co je dynamická alokace paměti?

Dynamické přidělení paměti, také nazývané přidělení paměti založené na haldě, je typ správy paměti, který je ostře kontrastován s přidělováním statické paměti. Při dynamickém přidělení paměti programátor počítači přesně řekne, kolik paměti má být přiděleno pro každý program a jak dlouho se má do paměti přidržet. To řeší mnoho problémů, které se vyskytují při přidělování statické paměti, jako je nadužívání paměti a pozastavené programy. I když to řeší mnoho problémů, pokud programátor zapomene říct paměti pro výpis, pak se dynamická paměť může stát problémem.

Počítače ve výchozím nastavení používají přidělování statické paměti. To znamená, že paměť drží programy, když jsou používány, i když se program již nepoužívá nebo pokud se pozastavená paměť stává nebezpečnou nebo překážkou výkonu. Například pokud uživatel přestane spouštět program, který trvá 2 megabajty (MB) na 3 MB počítači a druhý program potřebuje další 2 MB, druhý program nebude fungovat. Důvodem je, že v počítači není dostatek paměti pro jiný program.

Při přidělení statické paměti nemůže uživatel ani programátor určit velikost paměti, kterou chce uložit, ani programátor nemůže říct statické paměti, aby vyprázdnila paměť, aby uvolnila prostředky. To je důvod, proč pokročilí uživatelé často používají dynamické přidělení paměti. Programátor je schopen ovládat vše o paměti, včetně toho, jak dlouho vydrží zdroje.

Například programátor může nastavit přidělení dynamické paměti tak, aby držel pouze 1 MB nebo méně, což by ušetřilo dostatek systémové paměti, aby bylo možné otevřít jiné programy. To lze provést, protože statická paměť obvykle drží vše o programu, zatímco dynamická paměť umožňuje programátorům nastavit ji na nižší hodnotu, která obsahuje některá data, ale ne všechno. Současně bude stále potřeba statická paměť a lze ji nastavit v tomto alokačním schématu.

Potenciální problém s přidělováním dynamické paměti - ten, který se zřídka dostává do hry - je, že dynamická paměť se může zaplnit, pokud programátor zapomene nastavit časovou hodnotu. Není-li nastavena žádná časová hodnota, na rozdíl od statické paměti, která nakonec uvolní paměť, dynamická paměť uchová informace. Pokud má program skládku odpadků a většina tak učiní, aktivuje se po určité době a vymaže paměť. Stále je nejlepší nastavit časovou hodnotu pro přidělení paměti.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?