Фрагментация системалык эстутумда (RAM) да болот. Колдонмо жана система процесстери эстутумду чектеш эмес блокторго бөлүштүрөт жана колдонот, анткени учурдагы эс тутум регистрлери колдонулат жана кайра колдонулат.
Рам фрагменттелиши мүмкүнбү?
Эстутумдун пейджинги ички фрагментацияны жаратат, анткени мынчалык көп сактагыч керекпи же жокпу, бүтүндөй барак алкагы бөлүнөт. Эстутумду бөлүштүрүүнү жөнгө салган эрежелерден улам, кээде компьютердин эстутуму талап кылынгандан көбүрөөк бөлүнөт.
Эстутумдун бөлүнүшүнө эмне себеп болот?
Эстутумдун фрагментациясы - бул эстутуңуздун көбү көп сандагы чектеш эмес блокторго же бөлүктөргө бөлүнгөндө - жалпы эс тутумуңуздун жакшы пайызын бөлүштүрүлбөй, бирок колдонууга болбойт. көпчүлүк типтүү сценарийлер үчүн. Бул эстутумдагы өзгөчө кырдаалдарга же бөлүштүрүү каталарына алып келет (мис. malloc нөлдү кайтарат).
Эстутумдун фрагменттелиши жаманбы?
Жалпысынан c++ программалоо эстутумдун фрагментациясында эч кандай көйгөй жок. Сиз ар дайым виртуалдык эстутумду көрөсүз жана сиз ар дайым туташкан виртуалдык эс тутумдун бөлүктөрүн бөлүп турасыз. Сиз ырааттуу бөлүнгөн бөлүктөр эстутумда сөзсүз эле чектеш эмес экенин байкай турган бир гана нерсе.
Эстутумдун фрагментациясын кантип алдын аласыз?
Эгер сиз чоң блокторду бөлүштүрө турган жерлерди так бөлүп алсаңыз, сиз (Windows'до) эстутумду башкаргыч аркылуу өтпөстөн, түз элеVirtualAllocга чалсаңыз болот. Бул качаткадимки эстутумду башкаргычтын ичинде фрагментация.