Fraqmentasiya sistem yaddaşında (RAM) də baş verir. Tətbiq və sistem prosesləri yaddaşı bitişik olmayan bloklarda ayırır və istifadə edir, çünki mövcud yaddaş registrləri istifadə olunur və yenidən istifadə olunur.
Ram parçalana bilərmi?
Yaddaş səhifələnməsi daxili fraqmentasiya yaradır, çünki o qədər yaddaşa ehtiyac olub-olmamasından asılı olmayaraq bütün səhifə çərçivəsi ayrılacaq. Yaddaşın ayrılmasını tənzimləyən qaydalara görə bəzən tələb olunandan daha çox kompüter yaddaşı ayrılır.
Yaddaşın parçalanmasına nə səbəb olur?
Yaddaşın parçalanması yaddaşınızın böyük hissəsinin çoxlu sayda bitişik olmayan bloklara və ya parçalara ayrılmasıdır - ümumi yaddaşınızın yaxşı bir faizini bölüşdürülməmiş, lakin istifadə edilə bilməz tərk edir. ən tipik ssenarilər üçün. Bu, yaddaşın tükənməsi istisnaları və ya ayırma xətaları ilə nəticələnir (yəni malloc null qaytarır).
Yaddaşın parçalanması pisdir?
Ümumiyyətlə c++ proqramlaşdırması yaddaşın parçalanması ilə bağlı problem yoxdur. Siz həmişə virtual yaddaşı görürsünüz və həmişə bitişik virtual yaddaş parçaları ayırırsınız. Diqqət edə biləcəyiniz yeganə şey, ardıcıl olaraq ayrılmış parçaların mütləq yaddaşda bitişik olmamasıdır.
Yaddaşın parçalanmasının qarşısını necə ala bilərsiniz?
Əgər siz böyük bloklar ayıra biləcəyiniz yerləri tam olaraq təcrid edə bilsəniz, siz (Windows-da) yaddaş menecerindən keçmək əvəzinə birbaşa VirtualAlloc-a zəng edə bilərsiniz. Bu qarşısını alacaqnormal yaddaş meneceri daxilində parçalanma.