Co je to dynamická alokace paměti?

alokace dynamické paměti, nazývané také přidělení paměti založené na HEAP, je typ správy paměti, který je ostře kontrastován statickou alokací paměti. Při alokaci dynamické paměti programátor řekne počítači přesně, kolik paměti pro každý program a jak dlouho drží paměť. 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 zastavené programy. I když řeší mnoho problémů, pokud programátor zapomene říct paměti, která má být vyřazena, pak se dynamická paměť může stát problémem.

počítače, ve výchozím nastavení použijte přidělování statické paměti. To znamená, že paměť se drží programů, když jsou používána, i když se program již nepoužívá nebo pokud se udržovací paměť stane nebezpečnou nebo překážkou výkonu. Pokud například uživatel přestane spustit program, který na 3 MB počítači vezme 2 megabajty (MB), a druhý program potřebuje další 2 MB, druhý program nebude fungovat. Je to proto, že neexistuje enOUGH paměť zbývající v počítači pro druhý program.

Při přidělování statické paměti uživatel nebo programátor nemůže specifikovat množství paměti, kterou chce uložen, ani nemůže programátor sdělit statické paměti, aby vypustila paměť, aby uvolnila prostředky. Proto pokročilí uživatelé často používají dynamické přidělování paměti. Programátor je schopen ovládat vše o paměti, včetně toho, jak dlouho drží zdroje.

Například programátor může nastavit dynamické přidělení paměti, aby se držel pouze 1 MB, nebo méně, což by ušetřilo dostatek systémové paměti, aby se ostatní programy otevíraly. Toho 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 může být nastavena v tomto schématu přidělování.

Potenciální problém s dynamickou alokací paměti - ten, který zřídka vstupuje do hry - je to, že dynamická paměť se může vyplnit, pokud programátor zapomene nastavit časovou hodnotu. Pokud není nastavena žádná časová hodnota, na rozdíl od statické paměti, která nakonec uvolní paměť, bude dynamická paměť držet informace. Pokud má program aplikaci pro skládku na odpadky a většina to udělá, aktivuje se po určitém čase, aby vyčistila paměť. Stále je nejlepší praxe stanovit časovou hodnotu pro přidělování 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?