Пронађите и поправите цурење меморије у оперативном систему Виндовс 10

Меморија цурења је Загубљена ресурса у компјутерском програму због погрешне расподјеле меморије. То се догађа када РАМ локација која се не користи остане необјављена. Цурење меморије не треба мешати са празним простором, што се односи на програм који користи више РАМ-а него што је потребно. До цурења меморије у систему Виндовс 10/8/7 је речено да се догодило када меморија једноставно није доступна, иако није у употреби.

Цурење меморије у оперативном систему Виндовс 10

Пре него што започнете, требали бисте знати да је цурење меморије проблем са софтвером за отклањање грешака - на пример у Јави, ЈаваСцрипт-у, Ц / Ц ++, Виндовс-у итд. Физичка замена РАМ-а или тврдог диска није потребна.

Пропуштање меморије у оперативном систему Виндовс 10

Зашто је лоше

Очигледно је да је цурење меморије лоше јер је грешка, недостатак у систему. Али хајде да сазнамо како тачно утиче на систем:

  1. Пошто се меморија не ослобађа чак и када се не користи, резултира исцрпљењем меморије.
  2. Исцрпљеност меморије резултира старењем софтвера.
  3. Смањена расположива меморија доводи до продуженог времена одзива и лоших перформанси система.
  4. Непроверено цурење меморије на крају може довести до пада апликације.

Да би идентификовао цурење меморије, програмер мора да има приступ изворном коду програма.

Лоцирање цурења

Да бисмо решили проблем, прво га морамо идентификовати. Основни кораци за проналажење цурења меморије су:

  1. Афирмација : Утврђивање да ли је дошло до цурења.
  2. Проналажење цурења меморије у режиму језгра : лоцирање цурења узроковано компонентом управљачког програма режима језгра.
  3. Проналажење цурења меморије у корисничком режиму: Проналажење цурења изазваног управљачким програмом или апликацијом у корисничком режиму.

Додела меморије

Постоје различити режими у којима апликације додељују РАМ. Ако се простор не ослободи након употребе, исцуриће меморија без обзира на начин доделе. Неки уобичајени обрасци алокације су:

  1. ХеалАллоц функција за алокацију меморије гомиле. Ц / Ц ++ еквиваленти извршавања су маллоц и нови.
  2. Функција ВиртуалАллоц за директно додељивање из ОС-а.
  3. Кернел32 АПИ-ји за задржавање меморије језгра за апликацију. Пример, ЦреатеФиле, ЦреатеТхреад.
  4. АПИ-ји Усер32 и Гди32 АПИ-ји.

Спречавање цурења меморије

Сви знамо да је превенција боља од лечења, па ево неколико начина за спречавање цурења меморије.

Навике праћења

Цурење меморије у оперативном систему Виндовс 10

Морате припазити на абнормално коришћење РАМ-а од стране појединих програма и апликација. Можете да одете у Виндовс Таск Манагер притиском на ЦТРЛ + СХИФТ + ЕСЦ и додате колоне попут Хандлес, Усер Објецтс, ГДИ Објецтс итд.

Ово ће вам помоћи да лако надгледате употребу ресурса.

Мицрософт алати за дијагнозу цурења меморије

Разни алати дијагностикују цурење меморије за различите начине додељивања:

  1. Верификатор апликација дијагностикује цурење гомиле.
  2. УМДХ (компонента Виндовс алатки за отклањање грешака) дијагностикује цурење за појединачне процесе надгледањем алокације гомиле меморије.
  3. Траце Цаптуре за темељну анализу употребе РАМ-а.
  4. Ксперф такође прати обрасце алокације гомиле.
  5. ЦРТ Дебуг Хеап не само да прати додељивање гомиле, већ такође омогућава праксе кодирања да би се смањило цурење.
  6. ЈаваСцрипт детектор цурења меморије отклања грешке у меморији у кодовима.

Савети за употребу

  1. Користите ХАНДЛЕ с језгром и такве друге паметне показиваче за Вин32 ресурсе и доделу гомиле.
  2. Набавите часове за аутоматско управљање ресурсима за доделу језгра из АТЛ библиотеке. Ц ++ стандард има ауто_птр за доделу гомиле.
  3. Инкапсулирајте показиваче ЦОМ интерфејса у „паметне показиваче“ уз помоћ _цом_птр_т или _бстр_т или _вариант_т .
  4. Надгледајте .НЕТ код због неправилног коришћења меморије.
  5. Избегавајте вишеструке излазне путање за функције како би се алокације ослободиле променљивих у већини блокова до краја функције.
  6. Користите изворне изузетке тек након што ослободите сва издвајања у блоку _финалли. Обмотајте сву хрпу и рукујејте додељивањима у паметне показиваче како бисте користили изузеће Ц ++.
  7. Увек позовите функцију ПропВариантЦлеар пре поновне иницијализације или одбацивања ПРОПВАРИАНТ објекта.

Решавање проблема са цурењем меморије у оперативном систему Виндовс

Баш као и различити начини за спречавање цурења меморије, постоје различити начини за заустављање цурења меморије. Али пре него што почнете, не заборавите прво да направите тачку за обнављање система.

1] Затворите процесе и поново покрените.

Ако видите да непотребан процес заузима превише РАМ-а, можете га завршити у управитељу задатака. Морате поново покренути уређај тако да ослобођени простор буде доступан за употребу у другим процесима. Без поновног покретања проблем цурења меморије неће бити решен. Један одређени процес који има грешке у успоравању рада рачунара је Рунтиме Брокер. Покушајте да ли онемогућавање само тога делује.

2] Меморијски дијагностички алати

Дијагностика меморије Виндовс

Да бисте приступили уграђеном дијагностичком алату меморије за Виндовс:

  1. Сачувајте сав свој важан посао.
  2. Притисните Вин + Р да бисте отворили прозор Рун .
  3. Откуцајте команду мдсцхед.еке у прозору Покрени .
  4. Поново покрените рачунар.
  5. Након поновног покретања, извршите основно скенирање или идите на опције „ Напредно “, као што су „ Тест мик “ или „ Пасс цоунт “.
  6. Притисните Ф10 да бисте започели тест.

То су и даље привремени поправци.

3] Проверите да ли постоје исправке за управљачки програм

Ажурирајте управљачки софтвер

Застарели управљачки програми узрокују цурење меморије. Ажурирајте све управљачке програме:

  1. Притисните Вин + Р и отворите прозор Рун . Укуцајте девмгмт.мсц и притисните Ентер. Одвешће вас до Управитеља уређаја .
  2. Проверите да ли постоје застарели управљачки програми и ажурирајте их све.
  3. Ажурирања која сте можда пропустили потражите у Виндовс Упдате.

Ово је било једноставно.

4] Оптимизујте перформансе

Подесите за најбоље перформансе

Прилагођавањем оперативног система Виндовс управљаће свим, укључујући заказивање процесора и употребу меморије, како би се зауставило цурење меморије. Пратите ове кораке:

  1. Кликните десним тастером миша на „ Овај рачунар “ и изаберите „ Напредне “ поставке у левом окну.
  2. На картици „ Напредно “ идите на „ Перформансе “, а затим „ Подешавања “.
  3. Означите „ Прилагоди најбоље перформансе “ и кликните на дугме У реду .
  4. Поново покрените и проверите да ли је проблем решен.

Ако ово једноставно решење није успело, покушајте са следећим решењем.

5] Онемогућите програме који се покрећу при покретању

Стартуп програми

Онемогућавање проблематичних програма једини је начин да се решите проблема са цурењем меморије. Идите у Таск Манагер и онемогућите програм за прављење проблема. Ако не знате који програми стварају проблеме, урадите следеће:

  1. Идите на „ Таск Манагер “.
  2. Идите на „ Стартуп “.
  3. Онемогућите програме за покретање које подразумевано не треба да покрећете.

6] Дефраг хард диск

Дефрагментација диска

Иако Виндовс 10 то чини аутоматски за вас, можда ћете морати повремено дефрагментирати чврсте дискове да бисте оптимизовали перформансе:

  1. Идите на „ Овај рачунар “ или „ Мој рачунар “.
  2. Кликните десним тастером миша на системски чврсти диск (обично Ц: погон).
  3. Идите на „ Алати “ под „ Својства “ и изаберите „ Оптимизација “.
  4. Изаберите погон за дефрагментацију и изаберите „ Анализирај “.

Поново покрените рачунар након нове фрагментације.

7] ЦлеарПаге датотека при искључивању

Сада постаје све сложеније - али не брините. Ево како обрисати датотеку странице при сваком искључивању:

  • Унесите регедит у Сеарцх да бисте покренули уређивач регистра.
  • Унесите ову путању:
ХКЕИ_ЛОЦАЛ_МАЦХИНЕСИСТЕМЦуррентЦонтролСетЦонтролСессион МанагерМемори Манагемент
  • Промените вредност ЦлеарПагеФилеАтСхутДовн у '1'.
  • Сачувајте промене и поново покрените уређај.

Ово би требало. Не заборавите да ће вам поступак искључивања потрајати мало више времена.

9] Онемогући Суперфетцх

Ова Виндовс услуга оптимизује перформансе тако што смањује време покретања. Омогућава Виндовс-у да управља употребом РАМ-а. Живот након онемогућавања Суперфетцха није згодан, али учините то ако морате. Покушајте бар ово да бисте изоловали проблем:

  1. Потражите сервицес.мсц и идите на Сервицес Манагер.
  2. Потражите „ Суперфетцх “ и кликните десним тастером миша да бисте отишли ​​на „ Пропертиес “.
  3. Изаберите „ Стоп “.
  4. Такође из падајућег менија „ Онемогући “ услугу.
  5. Поново покрените рачунар и проверите да ли су се перформансе побољшале.

Омогућите Суперфетцх ако овај није успео.

10] Проверите да ли постоји злонамерни софтвер

Користите независни антивирусни софтвер или сопствени Виндовс Дефендер за Виндовс 10 да бисте скенирали и елиминисали малвер. Уверите се да је антивирус ажуриран тако да подржава ваш ОС како не би на крају постао разлог за цурење меморије.

Свако решење које ће вам можда требати за проналажење или спречавање цурења меморије је управо овде. Можете прочитати више о цурењу меморије на МСДН-у и Мицрософту.

Original text


Цурење меморије у оперативном систему Виндовс 10