Խոյը մասնատվո՞ւմ է:

Բովանդակություն:

Խոյը մասնատվո՞ւմ է:
Խոյը մասնատվո՞ւմ է:
Anonim

Կտրատումը տեղի է ունենում նաև համակարգի հիշողության մեջ (RAM): Հավելվածների և համակարգի գործընթացները տեղաբաշխում և օգտագործում են հիշողությունը ոչ հարակից բլոկներում, քանի որ առկա հիշողության ռեգիստրներն օգտագործվում և նորից օգտագործվում են:

Կարո՞ղ է Ռամը մասնատվել:

Հիշողության էջավորումը ստեղծում է ներքին մասնատում, քանի որ ամբողջ էջի շրջանակը կհատկացվի, անկախ նրանից, որ այդքան պահեստ է պահանջվում, թե ոչ: Հիշողության բաշխումը կարգավորող կանոնների շնորհիվ երբեմն ավելի շատ համակարգչային հիշողություն է հատկացվում, քան անհրաժեշտ է:

Ի՞նչն է առաջացնում հիշողության մասնատվածություն:

Հիշողության մասնատումն այն է, երբ հիշողության մեծ մասը բաշխված է մեծ թվով ոչ հարակից բլոկների կամ կտորների մեջ՝ թողնելով ձեր ընդհանուր հիշողության լավ տոկոսը չբաշխված, բայց անօգտագործելի: շատ բնորոշ սցենարների համար: Սա հանգեցնում է հիշողության բացառությունների կամ տեղաբաշխման սխալների (այսինքն, malloc-ը վերադարձնում է null):

Հիշողության մասնատումը վա՞տ է:

Ընդհանուր c++ ծրագրավորման մեջ հիշողության մասնատման խնդիր չկա: Դուք միշտ տեսնում եք վիրտուալ հիշողությունը և միշտ հատկացնում եք հարակից վիրտուալ հիշողության կտորներ: Միակ բանը, որ դուք կարող եք նկատել, որ հաջորդաբար բաշխված կտորները անպայմանորեն հարակից չեն հիշողության մեջ:

Ինչպե՞ս կանխել հիշողության մասնատումը:

Եթե դուք կարող եք մեկուսացնել հենց այն վայրերը, որտեղ, հավանաբար, մեծ բլոկներ կհատկացնեք, կարող եք (Windows-ում) ուղղակիորեն զանգել VirtualAlloc-ին՝ հիշողության կառավարչի միջոցով անցնելու փոխարեն: Սա կխուսափիֆրագմենտացիա սովորական հիշողության կառավարչի ներսում։

Խորհուրդ ենք տալիս: