Намерете и поправете изтичане на памет в Windows 10/8/7

Съдържание:

Намерете и поправете изтичане на памет в Windows 10/8/7
Намерете и поправете изтичане на памет в Windows 10/8/7

Видео: Намерете и поправете изтичане на памет в Windows 10/8/7

Видео: Намерете и поправете изтичане на памет в Windows 10/8/7
Видео: Блог Home Assistant. Home Habit - Управление умным домом с планшетов и смартфонов Android - YouTube 2024, Може
Anonim

А Пропускане на паметта е неправилно разположение на ресурс в компютърна програма поради грешно разпределение на паметта. Това се случва, когато неизползваното място в RAM остава неиздавано. Изтичането на паметта не трябва да се бърка с изтичане на пространство, което се отнася до програма, използваща повече RAM, отколкото е необходимо. Известно е, че изтичането на памет в системата на Windows 10/8/7 се е случило, когато паметта просто не е достъпна, въпреки че не се използва.

Пропускане на памет в Windows 10

Преди да започнете, трябва да знаете, че изтичането на памет е проблем, който може да бъде отстранен - например Java, JavaScript, C / C ++, Windows и т.н. Не се изисква физическа подмяна на RAM или твърд диск.

Image
Image

Защо е лошо

Очевидно е, че изтичането на паметта е лошо, защото това е бъг, недостатък в системата. Но нека разберем колко точно засяга системата:

  1. Тъй като паметта не се освобождава дори когато не се използва, това води до изчерпване на паметта.
  2. Изчерпването на паметта води до стареене на софтуера.
  3. Намалената налична памет води до повишено време за реакция и лошо представяне от системата.
  4. Неконтролираното изтичане на памет може евентуално да доведе до катастрофа на приложение.

За да се идентифицира изтичането на памет, програмистът трябва да има достъп до изходния код на програмата.

Намиране на теча

За да решим проблема, първо трябва да го идентифицираме. Основните стъпки за откриване на изтичане на памет са:

  1. утвърждаване: Определяне дали е настъпила теч.
  2. Намиране на изтичане на памет в режим Kernel: Намиране на течове, причинени от драйверен компонент на ядрото.
  3. Намиране на изтичане на памет в потребителския режим: Намиране на изтичане, причинено от драйвер или приложение на потребителски режим.

Разпределение на паметта

Има различни режими, в които приложенията разпределят RAM. Ако пространството не се освободи след употреба, изтичането на паметта ще се появи независимо от начина на разпределение. Някои общи модели на разпределение са:

  1. Функция HealAlloc за разпределение на паметта на купчината. Еквивалентите на Runtime C / C ++ са malloc и нови.
  2. Функция VirtualAlloc за директно разпределение от операционната система.
  3. Kernel32 API, за да задържат паметта на ядрото за приложението. Пример, CreateFile, CreateThread.
  4. Потребителски API и GDI32 API.

Предотвратяване на изтичане на памет

Всички знаем, че превенцията е по-добра от лечението, така че тук има няколко начина да се предотврати изтичането на паметта.

Навици за наблюдение

Image
Image

Трябва да внимавате за ненормално използване на RAM по отделни програми и приложения. Можете да отидете в Windows Task Manager, като натиснете CTRL + SHIFT + ESC и добавете колоните като Дръжки, Потребителски обекти, GDI обекти и др.

Това ще ви помогне лесно да следите използването на ресурсите.

Инструменти на Microsoft за диагностициране на изтичане на памет

Различни инструменти диагностицират изтичане на паметта за различни режими на разпределение:

  1. Проверка на приложения диагностицира течовете.
  2. UMDH (компонент на Windows Debugging Tools) диагностицира течове за отделни процеси чрез наблюдение на разпределението на паметта на купчината.
  3. Trace Capture за задълбочен анализ на използването на RAM.
  4. Xperf също проследява модели за разпределение на купчини.
  5. CRT Debug Heap не само проследява разпределението на хапчета, но също така дава възможност за кодиране на практиките за свеждане до минимум на течове.
  6. Диспечерът на течове за памет на JavaScript отстранява изтичането на памет в кодовете.

Съвети за ползване

  1. Използвайте ядрото МАНИПУЛАЦИИ и други подобни интелигентни указатели за ресурсите на Win32 и разпределението на хапчетата.
  2. Получете класове за автоматично управление на ресурсите за разпределение на ядрото от ATL библиотеката. C ++ стандарта е auto_ptr за разпределение на купчини.
  3. Оформление на показалеца на COM интерфейса в "умни указатели" с помощта на _com_ptr_t или _bstr_t или _variant_t.
  4. Следете.NET кода за ненормално използване на паметта.
  5. Избягвайте множество изходни пътища за функции, за да позволите разпределянето да бъде освободено от променливи в повечето блокове до края на дадена функция.
  6. Използвайте родствени изключения само след като освободите всички разпределения в _съдържащия се блок. Завършете разпределението на всички графики и дръжки в интелигентни указатели, за да използвате C ++ изключения.
  7. Винаги се обадете на PropVariantClear преди да извършите повторно активиране или изхвърляне на обект PROPVARIANT.

Отстраняване на неизправности в паметта в Windows

Подобно на различните начини за предотвратяване на изтичането на паметта, има различни начини за спиране на изтичането на паметта.

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

Ако видите, че ненужният процес отнема твърде много RAM, можете да прекратите процеса в диспечера на задачите. Ще трябва да рестартирате устройството така, че свободното пространство да е достъпно за използване от други процеси. Без проблем за рестартиране на текущата памет няма да бъде разрешен. Един конкретен процес, който има бъгове за забавяне на компютъра е Runtime Broker. Опитайте, ако изключите само това.

2] Инструменти за диагностика на паметта

За достъп до вградения диагностичен инструмент за памет за Windows:
За достъп до вградения диагностичен инструмент за памет за Windows:
  1. Запазете цялата си важна работа.
  2. Натиснете Win + R за да отворите тичам прозорец.
  3. Въведете командата mdsched.exe в тичам прозорец.
  4. Рестартирайте компютъра.
  5. След рестартиране, извършете основно сканиране или отидете на " напреднал"Опции като" Тестова смес' или ' Пропускане на броя ’.
  6. Натиснете F10 за да започнете теста.

Това все още са временни поправки.

3] Проверете за актуализации на драйвера

Неактуалните драйвери причиняват изтичане на памет. Дръжте всички драйвери актуализирани:
Неактуалните драйвери причиняват изтичане на памет. Дръжте всички драйвери актуализирани:
  1. Натиснете Win + R и отворете тичам прозорец. Тип devmgmt.msc и натиснете Enter. Тя ще ви отведе до Мениджър на устройства.
  2. Проверете за остарели драйвери и ги актуализирайте.
  3. За актуализации, които може да сте пропуснали, проверете в Windows Update.

Това беше просто.

4] Оптимизиране на ефективността

Настройването на Windows за производителност ще управлява всичко, включително планирането на процесора и използването на паметта, за да спре изтичането на паметта. Следвай тези стъпки:
Настройването на Windows за производителност ще управлява всичко, включително планирането на процесора и използването на паметта, за да спре изтичането на паметта. Следвай тези стъпки:
  1. Кликнете с десния бутон върху " Този компютър'И изберете' напреднал"В левия панел.
  2. Под ' напреднал", Отворете" производителност', следван от ' Настройки ’.
  3. Проверете " Настройте за най-добра ефективност"И кликнете Добре.
  4. Рестартирайте и проверете дали проблемът е решен.

Ако това просто решение не работи, опитайте следващото решение.

5] Забранете програми, които се изпълняват при стартиране

Деактивирането на проблемни програми е единственият начин да се отървете от проблема с изтичането на паметта. Влезте в Диспечера на задачите и деактивирайте програмата за понасяне на проблеми. Ако не знаете кои програми създават проблема, направете следното:
Деактивирането на проблемни програми е единственият начин да се отървете от проблема с изтичането на паметта. Влезте в Диспечера на задачите и деактивирайте програмата за понасяне на проблеми. Ако не знаете кои програми създават проблема, направете следното:
  1. Отидете на " Диспечер на задачите ’.
  2. Отидете на " Започвам ’.
  3. Деактивирайте програмите за стартиране, които не е необходимо да се изпълняват по подразбиране.

6] Дефрагментирайте твърдия диск

Въпреки че Windows 10 прави това за вас автоматично, може да се наложи да направите дефрагментиране на твърдите дискове понякога, за да оптимизирате производителността:
Въпреки че Windows 10 прави това за вас автоматично, може да се наложи да направите дефрагментиране на твърдите дискове понякога, за да оптимизирате производителността:
  1. Отидете на " Този компютър' или ' Моя компютър ’.
  2. Щракнете с десния бутон на твърдия диск на системата (обикновено C: drive).
  3. Отидете на " Инструменти"Под" Имоти'И изберете' оптимизирам ’.
  4. Изберете устройството, за да дефрагментирате, и изберете " Анализирам ’.

Рестартирайте компютъра си след новата фрагментация.

7] Файл ClearPage при изключване

Сега става все по-сложно - но не се притеснявай. Ето как да изчистите файла "Страница" при всяко изключване:

  1. Тип регентство в "Търсене", за да стартирате редактора на системния регистър.
  2. Въведете този път: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManager за управление
  3. Променете стойността на ClearPageFileAtShutDown на "1".
  4. Запазете промените и рестартирайте устройството.

Това трябва да го направи.

9] Изключване на Superfetch

Тази услуга на Windows оптимизира производителността, като минимизира времето за стартиране. Той позволява на Windows да управлява РАМ. Животът след деактивиране на Superfetch не е удобен, но го правете, ако трябва. Най-малко опитайте само това, за да изолирате проблема:

  1. Търсене services.msc и отидете в Мениджър услуги.
  2. Потърсете " SuperFetch"И щракнете с десния бутон върху него, за да отидете на" Имоти ’.
  3. Изберете " Спри се ’.
  4. Също ' правя неспособен'Услугата от падащото меню.
  5. Рестартирайте компютъра и проверете дали производителността се е подобрила.

Активирайте Superfetch, ако тази функция не работи.

10] Проверете за злонамерен софтуер

Използвайте антивирусен софтуер на трета страна или вътрешен Windows Defender на Windows 10 за сканиране и премахване на злонамерен софтуер. Уверете се, че антивирусът се актуализира, за да поддържа вашата операционна система, така че да не стане причина за изтичане на паметта.

Всяко решение, което може да е необходимо да намерите или да предотвратите изтичане на памет, е точно тук. Можете да прочетете повече за течове на памет в MSDN и Microsoft.

Подобни публикации:

  • Прикрепете Windows Stop Errors или Blue Screen of Death
  • Защо Windows показва по-малка RAM, отколкото е инсталирана?
  • Направете Windows 10 Старт, Пусни, Изключване по-бързо
  • Граници на физическата памет в файлове с катастрофа за Windows 10/8/7
  • Компресиране на паметта в Windows 10

Препоръчано: