Mediastreamer2 VoIP အင်ဂျင်ကို စူးစမ်းခြင်း။ အပိုင်း 12

ဆောင်းပါး၏ အကြောင်းအရာကို ကျွန်ုပ်ထံမှ ယူပါသည်။ zen ချန်နယ်.

Mediastreamer2 VoIP အင်ဂျင်ကို စူးစမ်းခြင်း။ အပိုင်း 12

နောက်ဆုံး၌ ဆောင်းပါးမီဒီယာ streamer တွင် အလွန်အကျွံ တွက်ချက်ခြင်းဝန်ကို ကိုင်တွယ်ဖြေရှင်းရန် နည်းလမ်းများ ticker load ဆိုင်ရာ ခန့်မှန်းချက်ကိစ္စကို ထည့်သွင်းစဉ်းစားမည်ဟု ကတိပြုပါသည်။ ဒါပေမယ့် ဒေတာလှုပ်ရှားမှုနဲ့ သက်ဆိုင်တဲ့ အမှားရှာပြင်တဲ့ craft filter တွေရဲ့ ပြဿနာတွေကို ဖုံးကွယ်ပြီး စွမ်းဆောင်ရည် ပိုမိုကောင်းမွန်အောင် လုပ်ဆောင်ခြင်းဆိုင်ရာ ပြဿနာတွေကိုသာ စဉ်းစားဖို့ ပိုယုတ္တိရှိမယ်လို့ ကျွန်တော် ဆုံးဖြတ်ခဲ့ပါတယ်။

လက်မှုစစ်ထုတ်မှုများ အမှားရှာခြင်း

ယခင်ဆောင်းပါးရှိ media streamer တွင် data လှုပ်ရှားမှု၏ယန္တရားကိုစစ်ဆေးပြီးနောက်၊ ၎င်းတွင်ဝှက်ထားသောအန္တရာယ်များအကြောင်းပြောဆိုခြင်းသည်ယုတ္တိရှိလိမ့်မည်။ "ဒေတာစီးဆင်းမှု" နိယာမ၏အင်္ဂါရပ်များထဲမှတစ်ခုမှာ အစုအပုံမှမှတ်ဉာဏ်ကို ခွဲဝေပေးခြင်းသည် ဒေတာစီးဆင်းမှု၏ရင်းမြစ်များတွင်ရှိသော စစ်ထုတ်မှုများတွင် ဖြစ်ပေါ်ပြီး စီးဆင်းမှုလမ်းကြောင်း၏အဆုံးတွင်ရှိသော စစ်ထုတ်မှုများသည် မှတ်ဉာဏ်ကို ပြန်၍ခွဲဝေပေးထားပြီးဖြစ်သည်။ အမှိုက်ပုံသို့။ ထို့အပြင်၊ ဒေတာအသစ်များဖန်တီးခြင်းနှင့်၎င်းတို့၏ပျက်စီးခြင်းကိုအလယ်အလတ်မှတ်တိုင်များတွင်တစ်နေရာ၌ဖြစ်ပွားနိုင်သည်။ ယေဘူယျအားဖြင့်၊ ဒေတာဘလောက်ကို ဖန်တီးသည့် အခြားစစ်ထုတ်မှုမှလွဲ၍ မမ်မိုရီထုတ်လွှတ်မှုကို လုပ်ဆောင်သည်။

မမ်မိုရီကို ပွင့်လင်းမြင်သာစွာ စောင့်ကြည့်ခြင်း၏ ရှုထောင့်မှ ကြည့်ပါက၊ ထည့်သွင်းမှုပိတ်ဆို့ခြင်းကို လက်ခံရရှိသည့်အခါ၊ ၎င်းကို စီမံဆောင်ရွက်ပြီးနောက် ၎င်းကို ချက်ချင်းဖျက်ဆီးရန်၊ မှတ်ဉာဏ်ကို ဖယ်ရှားကာ အထွက်တွင် အထွက်ဒေတာပါသည့် အသစ်ဖန်တီးထားသော ဘလောက်တစ်ခုကို ထည့်သွင်းရန် သင့်လျော်မည်ဖြစ်သည်။ ဤအခြေအနေတွင်၊ filter အတွင်းရှိ memory ယိုစိမ့်မှုကို အလွယ်တကူခြေရာခံနိုင်သည် — ခွဲခြမ်းစိတ်ဖြာသူသည် filter တွင်ပေါက်ကြားမှုကိုတွေ့ရှိခဲ့ပါက၊ ၎င်းနောက်လိုက်သော filter သည်အဝင်ဘလောက်များကိုကောင်းစွာမဖျက်ဆီးဘဲ၎င်းတွင်အမှားအယွင်းတစ်ခုရှိသည်။ သို့သော် မြင့်မားသောစွမ်းဆောင်ရည်ကို ထိန်းသိမ်းခြင်း၏ ရှုထောင့်မှကြည့်လျှင် ဒေတာဘလောက်များနှင့် အလုပ်လုပ်ရန် ဤချဉ်းကပ်မှုသည် အကျိုးဖြစ်ထွန်းမည်မဟုတ်ပေ - ၎င်းသည် အသုံးဝင်သော အိတ်ဇောမပါဘဲ ဒေတာဘလောက်များအတွက် / အခမဲ့မှတ်ဉာဏ်ကို ခွဲဝေပေးရန် လည်ပတ်မှုအများအပြားကို ဦးတည်စေသည်။

ဤအကြောင်းကြောင့်၊ media streamer filters များသည် data processing ကိုနှေးကွေးစေရန်အတွက်၊ မက်ဆေ့ချ်များကိုကူးယူသောအခါ light copies ဖန်တီးသည့် functions ကိုအသုံးပြုပါ (ယခင်ဆောင်းပါးတွင် ၎င်းတို့အကြောင်းပြောထားသည်)။ ဤလုပ်ဆောင်ချက်များသည် ကူးယူထားသော "အဟောင်း" မက်ဆေ့ချ်မှ ဒေတာဘလောက်ကို "တွဲ" ချိတ်ခြင်းဖြင့် မက်ဆေ့ခ်ျခေါင်းစီး၏ မိတ္တူအသစ်ကို ဖန်တီးပေးပါသည်။ ရလဒ်အနေဖြင့်၊ ခေါင်းစီးနှစ်ခုကို ဒေတာဘလောက်တစ်ခုတွင် ချိတ်ဆက်ထားပြီး ဒေတာဘလောက်ရှိ ရည်ညွှန်းကောင်တာကို တိုးမြှင့်ထားသည်။ ဒါပေမယ့် မက်ဆေ့ချ်နှစ်ခုနဲ့တူပါလိမ့်မယ်။ ထိုကဲ့သို့သော "အများပြည်သူ" ဒေတာပိတ်ဆို့သည့် မက်ဆေ့ဂျ်များ ပိုမိုရှိနိုင်သည်၊ ဥပမာ၊ MS_TEE စစ်ထုတ်မှုသည် ထိုကဲ့သို့သော အလင်းမိတ္တူဆယ်စောင်ကို တစ်ပြိုင်နက်ထုတ်ပေးပြီး ၎င်း၏အထွက်များကြားတွင် ၎င်းတို့ကို ဖြန့်ဝေပေးပါသည်။ ကွင်းဆက်ရှိ စစ်ထုတ်မှုအားလုံး မှန်ကန်ပါက၊ ပိုက်လိုင်းအဆုံးတွင် ဤရည်ညွှန်းချက်အရေအတွက်သည် သုညသို့ရောက်ရှိမည်ဖြစ်ပြီး မှတ်ဉာဏ်ခွဲဝေပေးသည့်လုပ်ဆောင်ချက်ကို ခေါ်ပါမည်- ms_free(). ခေါ်ဆိုမှု မဖြစ်ပေါ်ပါက ဤမှတ်ဉာဏ်အပိုင်းအစကို အမှိုက်ပုံသို့ ပြန်လည်ရောက်ရှိတော့မည်မဟုတ်ပါ။ သူက "ပေါက်ကြား" ။ အလင်းမိတ္တူများအသုံးပြုခြင်း၏ကုန်ကျစရိတ်သည် (ပုံမှန်မိတ္တူများအသုံးပြုသည့်ကိစ္စတွင်ကဲ့သို့) လွယ်ကူစွာဆုံးဖြတ်နိုင်မှု ဆုံးရှုံးခြင်းဖြစ်ပြီး မှတ်ဉာဏ်ကို ဂရပ်ဖစ်စစ်ထုတ်ရာတွင် ပေါက်ကြားနေခြင်းဖြစ်သည်။

"ဇာတိ" စစ်ထုတ်မှုများတွင် မမ်မိုရီယိုစိမ့်မှုများကို ရှာဖွေရန်တာဝန်မှာ မီဒီယာထုတ်လွှင့်သူ၏ ဆော့ဖ်ဝဲအင်ဂျင်နီယာများနှင့် သက်ဆိုင်သောကြောင့်၊ ၎င်းတို့ကို အမှားရှာရန် မလိုအပ်ပါ။ သို့သော် သင်၏ဖန်တီးမှုစစ်ထုတ်မှုဖြင့် သင်ကိုယ်တိုင်သည် သင့်ကိုယ်ပိုင်ပျော်ရွှင်မှု၏ လေးကောင်ဖြစ်ပြီး၊ သင့်ကုဒ်ပေါက်ကြားမှုများကို သင်ရှာဖွေနေသည့်အချိန်သည် သင့်တိကျမှုပေါ်တွင် မူတည်မည်ဖြစ်သည်။ သင်၏ အမှားရှာပြင်ခြင်းအချိန်ကို လျှော့ချရန်၊ စစ်ထုတ်မှုများကို ဒီဇိုင်းထုတ်သည့်အခါ ယိုစိမ့်သောဒေသဖြစ်ခြင်းနည်းပညာများကို ကြည့်ရှုရန် လိုအပ်ပါသည်။ ထို့အပြင်၊ "သံသယရှိသူ" အရေအတွက် များပြားနိုင်ပြီး၊ အမှားရှာရန်အချိန် အကန့်အသတ်ရှိသော စစ်မှန်သောစနစ်တွင် စစ်ထုတ်မှုကို အသုံးပြုမှသာ ယိုစိမ့်မှု ပေါ်လာနိုင်သည်။

Memory ယိုစိမ့်မှုဟာ သူ့ကိုယ်သူ ဘယ်လိုထင်ရှားသလဲ။

ပရိုဂရမ်၏အထွက်တွင် ထိုသို့ယူဆရန်မှာ ယုတ္တိတန်ပါသည်။ ထိပ်တန်း သင့်အပလီကေးရှင်းမှ သိမ်းပိုက်ထားသော မှတ်ဉာဏ်ရာခိုင်နှုန်း တိုးလာမှုကို ပြသမည်ဖြစ်သည်။

တစ်ချိန်ချိန်တွင် စနစ်သည် မောက်စ်၏ရွေ့လျားမှုကို ဖြည်းညှင်းစွာတုံ့ပြန်ကာ စခရင်ကို ဖြည်းညှင်းစွာပြန်လည်ရေးဆွဲခြင်းဟူသောအချက်ကြောင့် ပြင်ပသရုပ်ဖော်ခြင်းတွင် ပါဝင်မည်ဖြစ်သည်။ ဟာ့ဒ်ဒရိုက်တွင် နေရာလွတ်ကို စားသုံးခြင်းဖြင့် စနစ်မှတ်တမ်း ကြီးထွားလာမည်လည်း ဖြစ်နိုင်သည်။ ဤကိစ္စတွင်၊ သင်၏အပလီကေးရှင်းသည် ညွှန်ကြားချက်များကို မတုံ့ပြန်ခြင်း၊ ဖိုင်ကိုဖွင့်၍မရခြင်း စသည်ဖြင့် ထူးဆန်းစွာပြုမူလာပါမည်။

ပေါက်ကြားမှု၏အချက်ကို ဖော်ထုတ်ရန်၊ ကျွန်ုပ်တို့သည် မှတ်ဉာဏ်ပိုင်းခြားစိတ်ဖြာစက် (ယခုနောက်ပိုင်းတွင် ခွဲခြမ်းစိတ်ဖြာသူဟု ခေါ်ဆိုသည်) ကို အသုံးပြုပါမည်။ အဲဒါဖြစ်နိုင်တယ်။ ဟုတ်ပါတယ် (ကောင်းတယ်။ ဆောင်းပါး ၎င်းအကြောင်း) သို့မဟုတ် compiler တွင်တည်ဆောက်ထားသည်။ gcc Memory Sanitizer သို့မဟုတ် အခြားတစ်ခုခု။ ဂရပ်ဖစ်စစ်ထုတ်မှုတစ်ခုတွင် ယိုစိမ့်မှုဖြစ်ပေါ်ကြောင်း ခွဲခြမ်းစိတ်ဖြာသူမှ ပြသပါက၊ အောက်ဖော်ပြပါ နည်းလမ်းများထဲမှ တစ်ခုကို အသုံးပြုရန် အချိန်တန်ပြီဟု ဆိုလိုသည်။

Three Pines နည်းလမ်း

အထက်တွင်ဖော်ပြခဲ့သည့်အတိုင်း၊ မမ်မိုရီယိုစိမ့်မှုဖြစ်သည့်အခါ၊ ခွဲခြမ်းစိတ်ဖြာသူသည် အစုအဝေးမှ မှတ်ဉာဏ်ခွဲဝေပေးရန် တောင်းဆိုသည့် filter ကိုညွှန်ပြမည်ဖြစ်သည်။ သို့သော် ၎င်းကို ပြန်ပေးရန် "မေ့သွားသည်" ဟူသော စစ်ထုတ်မှုကို ညွှန်ပြလိမ့်မည်မဟုတ်ပေ။ ထို့ကြောင့်၊ ခွဲခြမ်းစိတ်ဖြာသူသည် ကျွန်ုပ်တို့၏ကြောက်ရွံ့မှုများကိုသာ အတည်ပြုနိုင်သော်လည်း ၎င်းတို့၏အမြစ်ကို မညွှန်နိုင်ပါ။

ဂရပ်ရှိ "မကောင်းတဲ့" စစ်ထုတ်မှု၏တည်နေရာကို သိရှိရန်၊ ခွဲခြမ်းစိတ်ဖြာသူသည် ယိုစိမ့်မှုကို ထောက်လှမ်းဆဲဖြစ်သည့် အနည်းဆုံး node အရေအတွက်အထိ ဂရပ်ဖစ်ကို လျှော့ချပြီး ကျန်ထင်းရှူးပင်သုံးပင်တွင် ပြဿနာရှိသော filter ကို ရှာဖွေနိုင်သည်။

သို့သော် ကော်လံရှိ filter အရေအတွက်ကို လျှော့ချခြင်းဖြင့် သင်သည် filter များနှင့် သင့်စနစ်၏ အခြားအစိတ်အပိုင်းများကြား ပုံမှန်အပြန်အလှန်ဆက်ဆံရေးကို အနှောင့်အယှက်ဖြစ်စေပြီး ယိုစိမ့်မှု ပေါ်လာတော့မည်မဟုတ်ကြောင်း ဖြစ်ပေါ်လာနိုင်သည်။ ဤကိစ္စတွင်၊ သင်သည် full-size ဂရပ်ဖြင့် လုပ်ဆောင်ရမည်ဖြစ်ပြီး အောက်တွင်ဖော်ပြထားသော ချဉ်းကပ်မှုကို အသုံးပြုရမည်ဖြစ်သည်။

Sliding insulator နည်းလမ်း

တင်ဆက်မှု၏ရိုးရှင်းမှုအတွက်၊ စစ်ထုတ်မှုကွင်းဆက်တစ်ခုပါရှိသော ဂရပ်တစ်ခုကို ကျွန်ုပ်တို့အသုံးပြုပါမည်။ သူမကို ပုံမှာပြထားပါတယ်။

Mediastreamer2 VoIP အင်ဂျင်ကို စူးစမ်းခြင်း။ အပိုင်း 12

အဆင်သင့်လုပ်ထားသော မီဒီယာထုတ်လွှင့်သူ စစ်ထုတ်မှုများနှင့်အတူ F1…F4 အမျိုးအစား လေးခုကို အသုံးပြုထားပြီး၊ သင်ရှေးရှေးက ပြုလုပ်ခဲ့သော မတူညီသောအမျိုးအစား လေးမျိုးကို အသုံးပြုထားပြီး ၎င်းတို့၏ မှန်ကန်မှုကို သံသယမရှိပါ။ သို့သော် ၎င်းတို့ထဲမှ အများအပြားသည် memory ယိုစိမ့်နေသည်ဆိုပါစို့။ ကျွန်ုပ်တို့၏ ခွဲခြမ်းစိတ်ဖြာသူ ကြီးကြပ်မှုပရိုဂရမ်ကို လုပ်ဆောင်သည့်အခါ၊ အချို့သော စစ်ထုတ်မှုတစ်ခုသည် မှတ်ဉာဏ်ပမာဏအချို့ကို တောင်းဆိုခဲ့ပြီး ၎င်းကို အစုလိုက် N အကြိမ်သို့ ပြန်မပေးခဲ့ကြောင်း ၎င်း၏အစီရင်ခံစာမှ လေ့လာသိရှိရပါသည်။ MS_VOID_SOURCE အမျိုးအစား၏ အတွင်းပိုင်း စစ်ထုတ်ခြင်း လုပ်ဆောင်ချက်များကို ရည်ညွှန်းခြင်း ရှိမည်ကို ခန့်မှန်းရန် လွယ်ကူသည်။ သူ့တာဝန်က အမှိုက်ပုံကနေ မှတ်ဉာဏ်ယူဖို့ပါ။ အခြား filter များသည် ၎င်းကို ထိုနေရာတွင် ပြန်ပေးသင့်သည်။ အဲဒါတွေ။ ပေါက်ကြားမှုကို ငါတို့တွေ့လိမ့်မယ်။

မန်မိုရီယိုစိမ့်မှုကို ဖြစ်စေသည့် ပိုက်လိုင်း၏ မည်သည့်အပိုင်းတွင် လှုပ်ရှားမှုမရှိသည်ကို ဆုံးဖြတ်ရန်အတွက်၊ မက်ဆေ့ချ်များကို အဝင်မှ အထွက်သို့ ရိုးရှင်းစွာ ပြောင်းပေးသည့် နောက်ထပ် filter တစ်ခုကို မိတ်ဆက်ပေးရန် အဆိုပြုထားသော်လည်း တစ်ချိန်တည်းတွင် ထည့်သွင်းမှု၏ အလင်းမဟုတ်သော ကော်ပီကို ဖန်တီးပေးပါသည်။ မက်ဆေ့ချ်ကို ပုံမှန် "လေးလံသော" မိတ္တူအဖြစ်သို့၊ ထို့နောက် ဝင်ပေါက်ရောက်သည့် မက်ဆေ့ချ်ကို အပြီးအပိုင် ဖျက်ပစ်ပါ။ ထိုသို့သော filter ကို insulator ဟုခေါ်သည်။ ဇကာသည် ရိုးရှင်းသောကြောင့် ၎င်းတွင် ယိုစိမ့်ခြင်းကို ဖယ်ထုတ်ထားသည်ဟု ကျွန်ုပ်တို့ယုံကြည်သည်။ နောက်ထပ် အပြုသဘောဆောင်သည့် ပိုင်ဆိုင်မှုတစ်ခု - ကျွန်ုပ်တို့က ၎င်းကို ကျွန်ုပ်တို့၏ဂရပ်ရှိ မည်သည့်နေရာ၌မဆို ပေါင်းထည့်ပါက၊ ၎င်းသည် ဆားကစ်၏လည်ပတ်မှုကို မည်သည့်နည်းဖြင့်မျှ ထိခိုက်မည်မဟုတ်ပါ။ ကွန်တိုနှစ်ထပ်ဖြင့် အဝိုင်းအဖြစ် insulator filter ကို ပုံဖော်ပါမည်။

voidsourse စစ်ထုတ်ပြီးနောက် ချက်ချင်း သီးခြားခွဲထုတ်ခြင်းကို ဖွင့်ပါ-
Mediastreamer2 VoIP အင်ဂျင်ကို စူးစမ်းခြင်း။ အပိုင်း 12

ကျွန်ုပ်တို့သည် ပရိုဂရမ်ကို ခွဲခြမ်းစိတ်ဖြာသူဖြင့် ထပ်မံလုပ်ဆောင်ပြီး ဤတစ်ကြိမ်တွင်၊ ခွဲခြမ်းစိတ်ဖြာသူသည် သီးခြားခွဲခြမ်းစိတ်ဖြာသူကို အပြစ်ပေးမည်ကို ကျွန်ုပ်တို့တွေ့မြင်ရပါသည်။ ထို့နောက်တွင်၊ အမည်မသိ ပေါ့ဆမှုမရှိသော စစ်ထုတ်မှု (သို့မဟုတ် စစ်ထုတ်မှုများ) ဖြင့် ပျောက်ဆုံးသွားသည့် ဒေတာဘလောက်များကို ယခုဖန်တီးနေသူမှာ ၎င်းဖြစ်သည်။ နောက်တစ်ဆင့်မှာ ကွင်းဆက်တစ်လျှောက်ရှိ insulator ကို ညာဘက်သို့၊ filter တစ်ခုဖြင့်ပြောင်းကာ ခွဲခြမ်းစိတ်ဖြာမှုကို ထပ်မံစတင်ရန်ဖြစ်သည်။ ထို့ကြောင့် တစ်ဆင့်ပြီးတစ်ဆင့်၊ အထီးကျန်ကိရိယာကို ညာဘက်သို့ရွှေ့ခြင်းဖြင့် နောက်တစ်ကြိမ်ခွဲခြမ်းစိတ်ဖြာမှုအစီရင်ခံစာတွင် "ပေါက်ကြားခဲ့သည့်" မမ်မိုရီဘလောက်များအရေအတွက် လျော့နည်းသွားသည့်အခါ အခြေအနေတစ်ခုရရှိမည်ဖြစ်သည်။ ဆိုလိုသည်မှာ ဤအဆင့်တွင် ပြဿနာရှိသော filter ပြီးနောက် ချက်ခြင်းတွင် insulator သည် ကွင်းဆက်တွင် အဆုံးသတ်သွားပါသည်။ "မကောင်းသော" စစ်ထုတ်မှုတစ်ခုသာရှိခဲ့ပါက၊ ယိုစိမ့်မှုလုံးဝပျောက်ကွယ်သွားလိမ့်မည်။ ထို့ကြောင့်၊ ကျွန်ုပ်တို့သည် ပြဿနာရှိသော စစ်ထုတ်မှု (သို့မဟုတ် အများအပြားထဲမှတစ်ခု) ကို ဘာသာပြန်ထားပါသည်။ Filter ကို "ပြင်ဆင်ထားသည်" ဖြင့်၊ memory ယိုစိမ့်မှုကို လုံးလုံးလျားလျား မဖယ်ရှားမချင်း ကွင်းဆက်တစ်လျှောက် အထီးကျန်ကိရိယာကို ညာဘက်သို့ ဆက်လက်ရွှေ့နိုင်သည်။

isolator filter ကို အကောင်အထည်ဖော်ခြင်း။

isolator အကောင်အထည်ဖော်မှုသည် သာမန် filter တစ်ခုနှင့်တူသည်။ ခေါင်းစီးဖိုင်-

/* Файл iso_filter.h  Описание изолирующего фильтра. */

#ifndef iso_filter_h
#define iso_filter_h

/* Задаем идентификатор фильтра. */
#include <mediastreamer2/msfilter.h>

#define MY_ISO_FILTER_ID 1024

extern MSFilterDesc iso_filter_desc;

#endif

စစ်ထုတ်မှုကိုယ်တိုင်-

/* Файл iso_filter.c  Описание изолирующего фильтра. */

#include "iso_filter.h"

    static void
iso_init (MSFilter * f)
{
}
    static void
iso_uninit (MSFilter * f)
{
}

    static void
iso_process (MSFilter * f)
{
    mblk_t *im;

    while ((im = ms_queue_get (f->inputs[0])) != NULL)
    {
        ms_queue_put (f->outputs[0], copymsg (im));
        freemsg (im);
    }
}

static MSFilterMethod iso_methods[] = {
    {0, NULL}
};

MSFilterDesc iso_filter_desc = {
    MY_ISO_FILTER_ID,
    "iso_filter",
    "A filter that reads from input and copy to its output.",
    MS_FILTER_OTHER,
    NULL,
    1,
    1,
    iso_init,
    NULL,
    iso_process,
    NULL,
    iso_uninit,
    iso_methods
};

MS_FILTER_DESC_EXPORT (iso_desc)

မှတ်ဉာဏ်စီမံခန့်ခွဲမှုလုပ်ဆောင်ချက်များကို အစားထိုးသည့်နည်းလမ်း

ပိုမိုသိမ်မွေ့သောသုတေသနအတွက်၊ မီဒီယာထုတ်လွှင့်သူသည် အဓိကအလုပ်အပြင် "ဘယ်သူ၊ ဘယ်မှာနှင့် ဘာကြောင့်" ကို မှတ်တမ်းတင်နိုင်စေမည့် မမ်မိုရီဝင်ရောက်ခြင်းလုပ်ဆောင်ချက်များကို သင့်ကိုယ်ပိုင်ဖြင့် အစားထိုးနိုင်စေပါသည်။ လုပ်ဆောင်ချက်သုံးခုကို အစားထိုးထားသည်။ ၎င်းကို အောက်ပါနည်းလမ်းဖြင့် လုပ်ဆောင်သည်-

OrtpMemoryFunctions reserv;
OrtpMemoryFunctions my;

reserv.malloc_fun = ortp_malloc;
reserv.realloc_fun = ortp_realloc;
reserv.free_fun = ortp_free;

my.malloc_fun = &my_malloc;
my.realloc_fun = &my_realloc;
my.free_fun = &my_free;

ortp_set_memory_functions(&my);

ကျွန်ုပ်တို့၏ဆားကစ်တည်ဆောက်ထားသောစနစ်၏လည်ပတ်မှုကို အနှောင့်အယှက်ဖြစ်စေသည့် ခွဲခြမ်းစိတ်ဖြာသူသည် စစ်ထုတ်မှုများကို အလွန်နှေးကွေးသွားသောအခါတွင် ဤအင်္ဂါရပ်သည် ကယ်တင်နိုင်မည်ဖြစ်သည်။ ထိုသို့သောအခြေအနေမျိုးတွင်၊ သင်သည် ခွဲခြမ်းစိတ်ဖြာမှုကို စွန့်လွှတ်ပြီး မှတ်ဉာဏ်လုပ်ဆောင်ချက်များကို အစားထိုးအသုံးပြုရန် လိုအပ်သည်။

အကိုင်းအခက်များမပါဝင်သည့် ရိုးရှင်းသောဂရပ်အတွက် လုပ်ဆောင်ချက်များ၏ အယ်လဂိုရီသမ်တစ်ခုကို ကျွန်ုပ်တို့စဉ်းစားထားပါသည်။ ဒါပေမယ့် ဒီနည်းလမ်းကို တခြားကိစ္စတွေမှာ အသုံးချနိုင်ပေမယ့် အယူအဆကတော့ အတူတူပါပဲ။

နောက်ဆောင်းပါးတွင်၊ ticker load estimation ပြဿနာနှင့် media streamer တွင် အလွန်အကျွံ တွက်ချက်ခြင်း load ကို မည်သို့ကိုင်တွယ်ရမည်ကို လေ့လာပါမည်။

source: www.habr.com

မှတ်ချက် Add