Sistēmas atmiņā (RAM) notiek arī sadrumstalotība. Lietojumprogrammu un sistēmas procesi piešķir un izmanto atmiņu nesaistītos blokos, jo tiek izmantoti un atkārtoti izmantoti esošie atmiņas reģistri.
Vai Ram var kļūt sadrumstalots?
Atmiņas peidžeru veikšana rada iekšēju sadrumstalotību, jo viss lapas rāmis tiks piešķirts neatkarīgi no tā, vai ir nepieciešams tik daudz vietas. Atmiņas piešķiršanas noteikumu dēļ datoram dažkārt tiek piešķirts vairāk atmiņas nekā nepieciešams.
Kas izraisa atmiņas fragmentāciju?
Atmiņas sadrumstalotība ir tad, kad lielākā daļa jūsu atmiņas tiek iedalīta lielā skaitā nesaistītu bloku vai gabalos - atstājot labu procentuālo daļu no kopējās atmiņas nepiešķirtu, bet neizmantojamu. tipiskākajiem scenārijiem. Tas rada izņēmumus no atmiņas vai piešķiršanas kļūdas (t.i., malloc atgriež nulli).
Vai atmiņas fragmentācija ir slikta?
Kopumā c++ programmēšana ar atmiņas fragmentāciju nav problēmu. Jūs vienmēr redzat virtuālo atmiņu un vienmēr piešķirat blakus esošās virtuālās atmiņas daļas. Vienīgais, ko varat pamanīt, ka secīgi piešķirtie gabali ne vienmēr atrodas blakus atmiņā.
Kā novērst atmiņas fragmentāciju?
Ja varat izolēt tieši tās vietas, kur, visticamāk, piešķirsit lielus blokus, varat (operētājsistēmā Windows) tieši piezvanīt VirtualAlloc, nevis izmantot atmiņas pārvaldnieku. Tas ļaus izvairītiessadrumstalotība parastajā atmiņas pārvaldniekā.