La fragmentació també es produeix a la memòria del sistema (RAM). Els processos de l'aplicació i del sistema assignen i utilitzen memòria en blocs no contigus, ja que s'utilitzen i reutilitzen els registres de memòria existents.
El Ram es pot fragmentar?
La paginació de memòria crea fragmentació interna perquè s'assignarà un marc de pàgina sencer, sigui necessari o no tant d'emmagatzematge. A causa de les regles que regeixen l'assignació de memòria, de vegades s'assigna més memòria de l'ordinador de la necessària.
Què causa la fragmentació de la memòria?
La fragmentació de la memòria és quan la major part de la teva memòria s'assigna en un gran nombre de blocs o fragments no contigus - deixant un bon percentatge de la teva memòria total sense assignar, però inutilitzable per als escenaris més típics. Això provoca excepcions sense memòria o errors d'assignació (és a dir, malloc retorna null).
La fragmentació de la memòria és dolenta?
En la programació general de C++ no hi ha cap problema amb la fragmentació de la memòria. Sempre veieu la memòria virtual i sempre assigneu trossos de memòria virtual contigües. L'únic que podeu observar que els fragments assignats seqüencialment no són necessàriament adjacents a la memòria.
Com eviteu la fragmentació de la memòria?
Si podeu aïllar exactament aquells llocs on és probable que assigneu blocs grans, podeu (a Windows) trucar a VirtualAlloc directament en lloc de passar pel gestor de memòria. Això evitaràfragmentació dins del gestor de memòria normal.