Какво е "Memory management"?
Ако вече сте усвоили умения в C++ като познаване на основния синтаксис на С++ и неговите особености или работа с масиви, линейни и асоциативни STL контейнери, може би си задавате въпроса, какво още имате да изучавате в С++, за да го усвоите още по-добре?
Едно от най-важните неща, които трябва да имате в предвид при работа със С++ и които трябва да умеете перфектно, е управлението на паметта (т.нар. “Memory Management”). Това е ресурсно управление, приложено към компютърната памет. Неговата цел е оптимално използване на личната изчислителна мощ; когато дадена програма се нуждае от изчислителен ресурс – тя да го намира, а когато извърши изчисленията си – да го освобождава за нуждите на други програми или системи. Управлението на паметта е от критично значение за всяка една система, която извършва повече от едно дадено действие в даден момент или казано иначе – за всяко едно приложение днес.
Изпълнението на заявката за алокация на памет, се състои от локализиране на неизползван блок памет, който да има достатъчен размер. Блоковете са свързани в по-големи групи, които се наричат „heap” (купчини) или „свободен резерв“. В даден момент някои блокове от този heap са заети, докато други са свободни и по този начин подходящи за предстоящи алокации.
Известни са някои проблеми, които усложняват процеса по управление на паметта, като например външната фрагментация (external fragmentation), която се проявява, когато има множество малки празнини между алокираните блокове памет, която изключва тяхната употреба при други заявки за алокация. Метаданните на алокатора също могат да раздуят размера на индивидуалните, малки алокации. Друг проблем, който е следствие на недоброто или невнимателно управление на памет, са т.нар. „Memory leaks“ („течове на памет“).
Управлението на памет далеч не е единственото нещо, което ви очаква напред, по пътя на вашето развитие с езика С++. Ако искате да усвоите управлението на паметта, създаването на конструктори и деструктори, както и правилното организиране на код при по-мащабни проекти – запишете курса „C++ Advanced - януари 2019“ още днес! Това е вашият шанс!