Fragmentasie vind ook plaas in stelselgeheue (RAM). Toepassings- en stelselprosesse allokeer en gebruik geheue in nie-aangrensende blokke, aangesien bestaande geheueregisters gebruik en hergebruik word.
Kan Ram gefragmenteer word?
Geheue-blaai skep interne fragmentasie omdat 'n hele bladsyraam toegewys sal word, ongeag of soveel berging nodig is of nie. As gevolg van die reëls wat geheuetoewysing beheer, word meer rekenaargeheue soms toegeken as wat nodig is.
Wat veroorsaak geheuefragmentasie?
Geheuefragmentasie is wanneer meeste van jou geheue in 'n groot aantal nie-aaneenlopende blokke, of stukke toegewys is - wat 'n goeie persentasie van jou totale geheue ongeallokeer, maar onbruikbaar laat vir die meeste tipiese scenario's. Dit lei tot uitsonderings sonder geheue, of toewysingsfoute (m.a.w. malloc gee nul terug).
Is geheue fragmentasie sleg?
In die algemeen c++-programmering is daar geen probleem met geheuefragmentasie nie. Jy sien altyd die virtuele geheue en jy ken altyd aaneenlopende virtuele geheue stukke toe. Die enigste ding wat jy kan sien dat die opeenvolgende toegewysde stukke nie noodwendig langsaan in die geheue is nie.
Hoe voorkom jy geheuefragmentasie?
As jy presies daardie plekke kan isoleer waar jy waarskynlik groot blokke sal toeken, kan jy (op Windows) direk VirtualAlloc bel in plaas daarvan om deur die geheuebestuurder te gaan. Dit sal vermy wordfragmentasie binne die normale geheuebestuurder.