Atmiņas sadrumstalotība rodas, ja sistēmā ir atmiņa, kas ir tehniski brīva, bet kuru dators nevar izmantot. Atmiņas sadalītājs, kas piešķir nepieciešamo atmiņu dažādiem uzdevumiem, sadala un piešķir atmiņas blokus, kā tie nepieciešami programmām; dzēšot datus, sistēmā tiek atbrīvoti vairāk atmiņas bloku un tiek pievienoti atpakaļ pieejamās atmiņas krājumam. Kad sadalītāja darbības vai iepriekš aizņemto atmiņas segmentu atjaunošana noved pie atmiņas blokiem vai pat baitiem, kas ir pārāk mazi vai pārāk izolēti, lai tos varētu izmantot atmiņas kopa, ir notikusi sadrumstalotība. Sadrumstalotība var ievērojami iekost no datora brīvās atmiņas, un bieži vien tas izraisa neapmierinošus kļūdas ziņojumus ārpus atmiņas.
Iekšējā sadrumstalotība
Iekšējā sadrumstalotība rodas, ja atmiņas sadalītājs atstāj papildu vietu tukšu atmiņas bloka iekšpusē, kas piešķirts klientam. Parasti tas notiek tāpēc, ka procesora dizains nosaka, ka atmiņa jāsagriež noteikta lieluma blokos - piemēram, var būt nepieciešams, lai bloki vienmērīgi tiktu sadalīti ar četriem, astoņiem vai 16 baitiem. Kad tas notiek, klientam, kuram, piemēram, nepieciešama 57 baitu atmiņa, var tikt piešķirts bloks, kas satur 60 baitus vai pat 64. Papildu baiti, kas klientam nav vajadzīgi, tiek izšķiesti, un laika gaitā šie sīkie gabali neizmantotās atmiņas var uzkrāties un radīt lielu atmiņas daudzumu, ko sadalītājs nevar izmantot. Tā kā visi šie bezjēdzīgie baiti atrodas lielāku atmiņas bloku iekšienē, sadrumstalotība tiek uzskatīta par iekšēju.
Ārējā sadrumstalotība
Ārējā sadrumstalotība notiek, kad atmiņas sadalītājs atstāj neizmantoto atmiņas bloku sadaļas starp piešķirtās atmiņas daļām. Piemēram, ja nepārtrauktā līnijā tiek piešķirti vairāki atmiņas bloki, bet viens no līnijas vidējiem blokiem ir atbrīvots (iespējams, tāpēc, ka process, kas izmantoja šo atmiņas bloku, pārstāja darboties), brīvais bloks ir sadrumstalots. Bloks joprojām ir pieejams izmantošanai vēlāk sadalītājam, ja ir nepieciešama atmiņa, kas iekļaujas šajā blokā, bet bloks tagad nav izmantojams lielākām atmiņas vajadzībām. To nevar apvienot ar kopējo sistēmai pieejamo brīvo atmiņu, jo kopējai atmiņai jābūt blakus, lai to varētu izmantot lielākiem uzdevumiem. Tādā veidā veselas brīvās atmiņas sadaļas var beigties izolētas no visa, kas bieži ir par mazu nozīmīgai lietošanai, kas rada vispārēju brīvās atmiņas samazināšanos, kas laika gaitā var izraisīt pieejamās atmiņas trūkumu galvenajiem uzdevumiem.
Sadrumstalotība var nozīmēt lielas sistēmas problēmas
Sadrumstalotība var kļūt par problēmu, jo tā laika gaitā uzkrājas, izveidojot mazus un nederīgus atmiņas blokus un ierobežojot datora pieejamās brīvās atmiņas apjomu. Tā kā sadrumstalotība progresē, īsā laikā sistēmas darbība var kļūt lēna un gausa; ilgtermiņā sadrumstalotība var saīsināt datora vai servera dzīvi vidēji par 30 procentiem. No diviem sadrumstalotības veidiem iekšējais ir vairāk paredzams nekā ārējs, jo izšķērdētās vietas daudzumu nosaka atmiņas sadalītāja parametri (cik lieliem jābūt piešķirtajiem blokiem), kas ir konstante. Turklāt iekšējās sadrumstalotības dēļ zaudētās kopējās atmiņas apjoms parasti ir mazāks nekā ārējās sadrumstalotības dēļ zaudētais, lai gan tas var pakāpeniski uzkrāties. Savukārt ārējo sadrumstalotību ir grūtāk paredzēt, jo vairumā gadījumu sistēmā regulāri sākas un apstājas vairāki procesi, un atmiņas bloki, kas tiek izmantoti dažādos laika periodos, tiek atbrīvoti citā secībā, nekā tie tika aizpildīti, atstājot atstarpes pieejamā atmiņā.
Cīņa ar sadrumstalotību, lai uzlabotu sniegumu
Runājot par operatīvās atmiņas optimizēšanu, vienīgais noderīgais risinājums ir sistēmas pārstartēšana, kas atbrīvo lielu daļu no atmiņas, kuru lieto ilgstoši darbojošās programmas, un dod datoram jaunu sākumu atmiņas piešķiršanai. Rīki, kas apgalvo, ka defragē RAM, ir maldinoši, jo mūsdienu datoru virtuālās atmiņas pārvaldnieks darbojas, lai pastāvīgi optimizētu RAM izmantošanu. Cietajam diskam tomēr var būt nepieciešama atsevišķa defragmentēšana, lai maksimizētu sistēmas veiktspēju. Ja izmantojat Windows Vista vai jaunākas versijas, sistēma periodiski automātiski defragmentē jūsu cietā diska vietu. Ja pamanāt lēnāku sistēmas darbību un vēlaties pats palaist defragmentētāju, varat manuāli sākt procesu, noklikšķinot uz "Sākt", pēc tam uz "Visas programmas | Piederumi | Sistēmas rīki | Diska defragmentētājs". Visbeidzot, noklikšķiniet uz "Defragment Now". Atkarībā no tā, cik sadrumstalots ir jūsu cietais disks, process var ilgt no minūtēm līdz stundām, taču labā ziņa ir tā, ka datoru varat izmantot, kamēr darbojas diska defragmentētājs.
Sadrumstalotības problēma neattiecas uz visām operētājsistēmām vienādi. Mac datoriem defragmentēšana nav nepieciešama, jo, rakstot failus, Mac OS X automātiski optimizē vietu diskā. Arī Linux mašīnām nav nepieciešama regulāra defragmentēšana, jo tās piešķir atmiņu izkaisītā, nevis blakus esošā formātā, dodot failiem iespēju paplašināties. Linux lietotājiem, kuri redz sistēmas veiktspējas kritumu, jāapsver sava cietā diska lieluma palielināšana. Visbeidzot, jums nekad nevajadzētu defragmentēt cietvielu krātuves disku (piemēram, USB disku), jo defragmentēšana faktiski var saīsināt cietvielu disku izmantojamo mūžu.