Пронађите и поправите цурење меморије у оперативном систему Виндовс 11/10
Цурење меморије(Memory Leak) је погрешно постављање ресурса у рачунарском програму због погрешне алокације меморије. То се дешава када РАМ локација која се не користи остане необјављена. Цурење меморије не треба мешати са цурењем простора, што се односи на програм који користи више РАМ-а(RAM) него што је потребно. Каже се да је до цурења меморије на систему Windows 11/10/8/7 дошло када меморија једноставно није доступна иако се не користи.
Цурење меморије у оперативном систему Виндовс 11/10
Пре него што почнете, требало би да знате да је цурење меморије софтверски проблем за отклањање грешака – на пример у (Memory)Јави(Java) , ЈаваСцрипту(JavaScript) , Ц/Ц++, Виндовс(Windows) - у, итд. Није потребна физичка замена РАМ меморије или чврстог диска.(RAM)
Зашто је лоше
Очигледно је да је цурење меморије лоше јер је то грешка, грешка у систему. Али хајде да сазнамо како тачно утиче на систем:
- Пошто се меморија не ослобађа чак ни када се не користи, то доводи до исцрпљивања меморије.
- Исцрпљивање меморије доводи до старења софтвера.
- Смањена доступна меморија доводи до повећаног времена одзива и лоших перформанси система.
- Непроверено цурење меморије може на крају довести до пада апликације.
Да би идентификовао цурење меморије, програмер треба да има приступ изворном коду програма.
Лоцирање цурења
Да бисмо решили проблем, прво га морамо идентификовати. Основни кораци за лоцирање цурења меморије су:
- Афирмација(Affirmation) : Утврђивање да ли је дошло до цурења.
- Проналажење цурења меморије у режиму језгра(Finding Kernel-mode memory leak) : Лоцирање цурења узрокованог компонентом драјвера у режиму језгра.
- Проналажење цурења меморије(Finding User-mode memory leak) у корисничком режиму : Лоцирање цурења изазваног драјвером или апликацијом корисничког режима.
Алокација меморије
Постоје различити начини у којима апликације додељују РАМ(RAM) . Ако се простор не ослободи након употребе, до цурења меморије ће доћи без обзира на начин расподеле. Неки уобичајени обрасци алокације су:
- ХеалАллоц(HealAlloc) функција за доделу меморије у хрпи. Еквивалената Ц/Ц++ времена извршавања су маллоц и нев.
- ВиртуалАллоц(VirtualAlloc) функција за директну алокацију из ОС-а.
- Кернел32 АПИ-ји(Kernel32 APIs) за држање меморије кернела за апликацију. Пример(Example) , ЦреатеФиле(CreateFile) , ЦреатеТхреад(CreateThread) .
- Усер32 АПИ-ји и Гди32 АПИ-ји.
Спречите цурење меморије у Виндовс-у
Сви знамо да је превенција боља од лечења, па ево неколико начина да спречите цурење меморије.
Праћење навика
Морате пазити на ненормалну употребу РАМ(RAM) -а од стране појединачних програма и апликација. Можете да одете у Виндовс Таск Манагер(Windows Task Manager) притиском на CTRL+SHIFT+ESC и додате колоне као што су Хандлес(Handles) , Усер Објецтс(User Objects) , ГДИ Објецтс(GDI Objects) , итд.
Ово ће вам помоћи да лако пратите коришћење ресурса.
Прочитајте(Read) : Које су врсте меморије у рачунару?(What are the Types of Memory in a computer?)
Мицрософт(Microsoft) алати за дијагностицирање цурења меморије
Различити алати дијагностикују цурење меморије за различите режиме алокације:
- Апплицатион Верифиер(Application Verifier) дијагностикује цурење гомиле.
- УМДХ(UMDH) (компонента Виндовс алата за отклањање грешака(Windows Debugging Tools) ) дијагностикује цурење за појединачне процесе праћењем алокације меморије.
- Траце Цаптуре(Capture) за детаљну анализу коришћења РАМ(RAM) -а.
- Ксперф такође прати обрасце доделе гомиле.
- ЦРТ Дебуг Хеап(CRT Debug Heap) не само да прати алокацију гомиле већ и омогућава праксе кодирања да се минимизира цурење.
- ЈаваСцрипт детектор(JavaScript Memory Leak Detector) цурења меморије отклања грешке у меморији у кодовима.
Савети за коришћење
- Користите ХАНДЛЕ(HANDLE) језгра и друге паметне показиваче за Вин32(Win32) ресурсе и алокације гомиле.
- Набавите(Get) класе за аутоматско управљање ресурсима за доделу кернела из АТЛ(ATL) библиотеке. Ц++ стандард има ауто_птр(auto_ptr ) за алокацију гомиле.
- Инкапсулирајте(Encapsulate COM) показиваче ЦОМ интерфејса унутар „паметних показивача“ уз помоћ _цом_птр_т(_com_ptr_t) или _бстр_т(_bstr_t) или _вариант_т(_variant_t) .
- Надгледајте (Monitor).НЕТ(.NET) код за ненормално коришћење меморије.
- Избегавајте(Avoid) више излазних путања за функције да бисте омогућили да се алокације ослободе променљивих у већини блокова до краја функције.
- Користите(Use) изворне изузетке само након што ослободите све алокације у блоку _финалли(_finally) . Умотајте(Wrap) све алокације гомиле и руковања у паметне показиваче да бисте користили Ц++ изузетке.
- Увек позовите функцију ПропВариантЦлеар(PropVariantClear) пре поновног покретања или одбацивања објекта ПРОПВАРИАНТ(PROPVARIANT) .
Решите проблеме(Troubleshoot) са цурењем меморије у оперативном систему Виндовс(Windows)
Баш као и различити начини за спречавање цурења меморије, постоје различити начини за заустављање цурења меморије. Али пре него што почнете, запамтите да прво направите тачку за враћање система .
1] Затворите процесе и поново покрените.
Ако видите да непотребан процес заузима превише РАМ-а(RAM) , можете га прекинути у Управљачу задатака(Task Manager) . Мораћете поново да покренете уређај како би ослобођени простор био доступан за коришћење другим процесима. Без поновног покретања(Restart) проблем цурења меморије неће бити решен. Један посебан процес који има грешке за успоравање рачунара је Рунтиме (Runtime) Брокер(Broker) . Покушајте да ли само онемогућавање ради.
2] Алати за дијагностику меморије
Да бисте приступили уграђеној алатки за дијагностику меморије(Memory Diagnostic Tool) за Виндовс:
- Сачувајте сав ваш важан посао.
- Притисните Win + R да бисте отворили прозор Покрени .(Run)
- Откуцајте команду мдсцхед.еке(mdsched.exe) у прозору Покрени(Run) .
- Поново покрените рачунар.
- Након поновног покретања, извршите основно скенирање или идите на опције „ Напредне “ као што су „ (Advanced)Пробна мешавина(Test mix) “ или „ Број пролазака(Pass count) “.
- Притисните Ф10(F10) да започнете тест.
Ово су још увек привремена решења.
3] Проверите да ли постоје ажурирања драјвера
Застарели драјвери узрокују цурење меморије. Држите све драјвере ажурираним :
- Притисните Win + R и отворите прозор Покрени . (Run)Откуцајте девмгмт.мсц(devmgmt.msc) и притисните Ентер(Enter) . Одвешће вас до Управљача уређајима(Device Manager) .
- Проверите(Check) да ли постоје застарели драјвери и ажурирајте их све.
- За ажурирања која сте можда пропустили, проверите Виндовс Упдате(Windows Update) .
Ово је било једноставно.
4] Оптимизујте перформансе
Подешавање оперативног система Виндовс ће управљати свиме, укључујући заказивање процесора и коришћење меморије, како би се зауставило цурење меморије. Пратите ове кораке:
- Кликните десним тастером миша на „ Овај рачунар(This PC) “ и изаберите „ Напредна(Advanced) “ подешавања у левом окну.
- На картици „ Напредно(Advanced) “ идите на „ Перформансе(Performance) “, а затим на „ Подешавања(Settings) “.
- Означите ' Подесите за најбоље перформансе(Adjust for best performance) ' и кликните на ОК(OK) .
- Поново покрените(Restart) и проверите да ли је проблем решен.
Ако ово једноставно решење није успело, покушајте са следећим решењем.
5] Онемогућите програме(Programs) који се покрећу при покретању(Startup)
Онемогућавање проблематичних програма је једини начин да се решите проблема са цурењем меморије. Идите у Таск Манагер(Task Manager) и онемогућите програм који ствара проблеме. Ако не знате који програми стварају проблеме, урадите ово:
- Идите на ' Таск Манагер(Task Manager) '.
- Идите на „ Покретање(Startup) “.
- Онемогућите програме за покретање(Disable the startup programs) које не морате да покрећете подразумевано.
6] Дефрагујте чврсти диск
Иако Виндовс 10(Windows 10) то ради аутоматски уместо вас, можда ћете морати повремено да дефрагујете чврсте дискове да бисте оптимизовали перформансе:
- Идите на „ Овај рачунар(This PC) “ или „ Мој рачунар(My Computer) “.
- Кликните десним тастером миша(Right-Click) на системски чврсти диск (обично Ц: диск).
- Идите на „ Алатке(Tools) “ под „ Својства(Properties) “ и изаберите „ Оптимизуј(Optimize) “.
- Изаберите диск за дефрагментацију и изаберите „ Анализа(Analyze) “.
Поново покрените рачунар након нове фрагментације.
7] ЦлеарПаге Филе при искључивању
Сада постаје сложено – али не брините. Ево како да обришете датотеку странице при сваком гашењу(clear the Page File at every shutdown) :
- Откуцајте регедит(regedit) у Сеарцх(Search) да бисте покренули уређивач регистра(Registry Editor) .
- Унесите ову путању:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
- Промените вредност ЦлеарПагеФилеАтСхутДовн на '1'.( ClearPageFileAtShutDown to ‘1’.)
- Сачувајте промене и поново покрените(Restart) уређај.
Ово би требало да уради. Имајте на уму да ће процес искључивања трајати мало више времена.
9] Онемогућите Суперфетцх
Ова Виндовс услуга(Windows Service) оптимизује перформансе минимизирањем времена покретања. Омогућава Виндовс(Windows) -у да управља употребом РАМ -а. (RAM)Живот(Life) након онемогућавања Суперфетцх-(Superfetch) а није згодан, али урадите то ако морате. Барем покушајте ово сами да изолујете проблем:
- Претражите сервицес.мсц(services.msc) и идите на Сервицес Манагер.
- Потражите „ Суперфетцх(Superfetch) “ и кликните десним тастером миша да бисте отишли на „ Својства(Properties) “.
- Изаберите „ Заустави(Stop) “.
- Такође „ Онемогући(Disable) “ услугу из падајућег менија.
- Поново покрените рачунар и проверите да ли су се перформансе побољшале.
Омогућите Суперфетцх ако ово није успело.
10] Проверите да ли има малвера
Користите антивирусни софтвер треће стране или интерни Виндовс Дефендер оперативног(Windows Defender) система Виндовс 10 да бисте скенирали и елиминисали малвер. Уверите(Make) се да је антивирус ажуриран тако да подржава ваш ОС како не би на крају постао разлог за цурење меморије.
Свако решење које вам икада затреба да пронађете или спречите цурење меморије је управо овде. Више о цурењу меморије можете прочитати на МСДН(MSDN) -у и Мицрософт(Microsoft) -у .
Related posts
Како отворити и прочитати датотеке мале меморије (дмп) у оперативном систему Виндовс 11/10
Како покренути Виндовс алатку за дијагностику меморије у оперативном систему Виндовс 11/10
Како повећати величину датотеке странице или виртуелну меморију у оперативном систему Виндовс 11/10
Како ручно креирати Црасх Думп датотеку у оперативном систему Виндовс 11/10
Екплорер.еке Велика употреба меморије или ЦПУ-а у оперативном систему Виндовс 11/10
ЦПУ не ради пуном брзином или капацитетом у оперативном систему Виндовс 11/10
Како заменити хард дискове у оперативном систему Виндовс 11/10 помоћу Хот Свап-а
Савети и трикови за прегледач Мицрософт Едге за Виндовс 11/10
Како поправити 100% диск, високу ЦПУ, велику употребу меморије у Виндовс-у 11/10
Како тестирати веб камеру у оперативном систему Виндовс 11/10? Да ли ради?
Како користити алате уграђене у Цхармап и Еудцедит у Виндовс 11/10
Омогућите мрежне везе док сте у модерном стању приправности на Виндовс 11/10
Како отворити својства система на контролној табли у оперативном систему Виндовс 11/10
Поправите високу употребу ЦПУ-а, меморије или диска у Цхроме-у у оперативном систему Виндовс 11/10
Поправите кашњење Блуетоотх звука у оперативном систему Виндовс 11/10
Како додати поуздану локацију у Виндовс 11/10
Како омогућити или онемогућити функцију архивирања апликација у оперативном систему Виндовс 11/10
Како направити радарску карту у оперативном систему Виндовс 11/10
ПДФ текст нестаје приликом уређивања или чувања датотеке у оперативном систему Виндовс 11/10
Најбољи бесплатни софтвер ИСО Моунтер за Виндовс 11/10