ммап вс маллоц
У Ц-у постоји динамичка меморија и то указује на доделу меморије у програмском језику Ц кроз скуп функција присутних у Ц стандардној библиотеци. Један од њих је маллоц, који се односи на расподелу меморије. У УНИКС систему постоји ммап, који се односи на меморијски пресликани систем који долази са својим јединственим И / О. Ова два (ммап и маллоц) ће по номиналној вредности обављати исту функцију, али даљим прегледом откривају се неке разлике. Те разлике које произилазе из функционалности приказане су у наставку.
Разлике
Прво, важно је утврдити да ли постоје докази који указују на то да постоји значајна гушење меморије. То се постиже мерењем перформанси програма у односу на управљање меморијом .
Главни интерфејс за доделу меморије је маллоц. Ово је највећа у Ц библиотеци. Део управљачког кода који се налази у њему је ммап. Када се маллоц покреће, он окупља све расположиве садржаје система. Додатни садржаји система могу се мобилизирати кроз кернел, што је једна од стратегија управљања меморијом коју системи користе како би се осигурало задовољавајуће распоређивање меморије. Међутим, тај процес није једноставан, и постао је компликован из јединог разлога што спречава људе да стварају једноставне програме који могу дезорганизовати доделу меморије и самим тим створити слабе перформансе.
'ммап' са друге стране је системски позив који се наплаћује и захтева од кернела да пронађе неискориштен и непрекидан регион на адреси апликације која је довољно велика да омогући мапирање више страница меморије. Постоји и стварање структура за управљање виртуелном меморијом која у ствари не може резултирати сегфаултом.
Маллоц углавном функционише у већини процеса управљања меморијом. Ако програм захтева додатну меморију, то се позајмљује у ОС-у. Ммап с друге стране користи контекстни прекидач који се претвара у земљу кернела.
Маллоц је најприкладнији за расподелу меморије у било којој апликацији која ради на систему, за разлику од употребе ммап-а. Ово је оно што се мора догодити по дефаулту, осим у посебним случајевима када је то дозвољено.
Ммап се може користити за убрзавање одговора апликација. Ово, међутим, није препоручљиво јер на крају жртвује неколико бајтова страницама како би апликација могла несметано да ради. Иако се садржај података у почетку може чинити малим, екстраполирање истог када се бројне апликације желе покренути може у ствари успорити систем.
Након мерења перформанси и коришћења ресурса требало би извршити темељну процену коришћења података од стране свих апликација које раде на систему. Ако се прикажу векови трајања апликација, то може постати боље.
Употреба ммап-а за доделу меморије долази са недостатком што је додељивање и размештање података у комадима скупо. То је зато што се подаци деле на бројне области, а такође онемогућавају ммап од упућивања системских позива.
Ммап је предност у односу на маллоц, јер се меморија коју користи ммап одмах враћа у ОС. Меморија коју користи маллоц никад се не враћа осим ако нема прекида сегмента података. Ова меморија се посебно чува да би се могла поново користити.
Резиме
'маллоц' означава главну тачку за доделу меморије
Ммап систем позива и захтева кернел да нађе неискоришћене области у адресама апликације које могу да мапирају неколико меморијских страница
Ммап се не препоручује за доделу меморије јер дели расположиву меморију и не може да упућује системске позиве
Предност ммап-а над маллоком је доступност меморије, за разлику од маллоц меморије која се поново користи.