Fragmentatsiya tizim xotirasida (RAM) ham sodir bo'ladi. Ilova va tizim jarayonlari xotirani qoʻshni boʻlmagan bloklarga ajratadi va ishlatadi, chunki mavjud xotira registrlari ishlatiladi va qayta ishlatiladi.
Ram parchalanishi mumkinmi?
Xotira sahifalash ichki parchalanishni keltirib chiqaradi, chunki shuncha koʻp xotira kerak boʻladimi yoki yoʻqmi, butun sahifa ramkasi ajratiladi. Xotirani taqsimlashni tartibga soluvchi qoidalar tufayli, ba'zan kerak bo'lgandan ko'proq kompyuter xotirasi ajratiladi.
Xotira parchalanishiga nima sabab boʻladi?
Xotira parchalanishi - bu xotirangizning katta qismi koʻp sonli qoʻshni boʻlmagan bloklar yoki boʻlaklarga ajratilganda - umumiy xotiraning yaxshi foizi ajratilmagan, lekin foydalanilmaydi eng tipik stsenariylar uchun. Bu xotiradan istisnolar yoki ajratish xatolariga olib keladi (masalan, malloc nullni qaytaradi).
Xotira parchalanishi yomonmi?
Umuman c++ dasturlashda xotira parchalanishida muammo yoʻq. Siz har doim virtual xotirani ko'rasiz va siz doimo ulashgan virtual xotira qismlarini ajratasiz. Siz ko'rishingiz mumkin bo'lgan yagona narsa - ketma-ket ajratilgan qismlar xotirada qo'shni bo'lishi shart emas.
Xotira parchalanishini qanday oldini olasiz?
Agar siz katta bloklarni ajratishingiz mumkin boʻlgan joylarni aniq ajratib qoʻysangiz, (Windowsda) xotira menejeri orqali oʻtish oʻrniga toʻgʻridan-toʻgʻri VirtualAlloc-ga qoʻngʻiroq qilishingiz mumkin. Bu oldini oladioddiy xotira boshqaruvchisi ichida parchalanish.