Fragmentierung tritt auch im Systemspeicher (RAM) auf. Anwendungs- und Systemprozesse weisen und verwenden Speicher in nicht zusammenhängenden Blöcken, da vorhandene Speicherregister verwendet und wiederverwendet werden.
Kann Ram fragmentiert werden?
Speicher-Paging erzeugt interne Fragmentierung, weil ein ganzer Seitenrahmen zugeordnet wird, unabhängig davon, ob so viel Speicherplatz benötigt wird oder nicht. Aufgrund der Regeln für die Speicherzuweisung wird manchmal mehr Computerspeicher zugewiesen als benötigt.
Was verursacht Speicherfragmentierung?
Speicherfragmentierung liegt vor, wenn der größte Teil Ihres Speichers in einer großen Anzahl von nicht zusammenhängenden Blöcken oder Chunks zugewiesen wird - wobei ein guter Prozentsatz Ihres gesamten Speichers nicht zugewiesen, aber unbrauchbar bleibt für die meisten typischen Szenarien. Dies führt zu Speicherausnahmen oder Zuordnungsfehlern (d. h. malloc gibt null zurück).
Ist Speicherfragmentierung schlecht?
Im Allgemeinen gibt es bei der C++ Programmierung kein Problem mit Speicherfragmentierung. Sie sehen immer den virtuellen Speicher und weisen immer zusammenhängende virtuelle Speicherblöcke zu. Das einzige, was Sie bemerken können, ist, dass die nacheinander zugewiesenen Chunks im Speicher nicht unbedingt benachbart sind.
Wie verhindert man eine Speicherfragmentierung?
Wenn Sie genau die Stellen isolieren können, an denen Sie wahrscheinlich große Blöcke zuweisen werden, können Sie (unter Windows) direkt VirtualAlloc aufrufen, anstatt den Speichermanager zu durchlaufen. Dies wird vermiedenFragmentierung innerhalb des normalen Speichermanagers.