Raskite ir ištaisykite Atminties nutekimus "Windows 10/8/7"

Turinys:

Raskite ir ištaisykite Atminties nutekimus "Windows 10/8/7"
Raskite ir ištaisykite Atminties nutekimus "Windows 10/8/7"

Video: Raskite ir ištaisykite Atminties nutekimus "Windows 10/8/7"

Video: Raskite ir ištaisykite Atminties nutekimus
Video: How to Control Android Phone from a PC [via USB & WiFi] - YouTube 2024, Lapkritis
Anonim

A Atminties nutekėjimas yra netinkamas išteklių paskirstymas kompiuterinėje programoje dėl klaidingo atminties paskirstymo. Tai atsitinka, kai nenaudojama RAM dalis lieka neišleista. Atminties nutekėjimas neturi būti painiojamas su vietos nutekėjimu, o tai reiškia programą, kurioje naudojama daugiau atminties nei reikia. Pasakyta, kad "Windows 10/8/7" atmintyje yra atminties nutekėjimas, kai atmintis nėra prieinama, nepaisant to, kad ji nenaudojama.

Atminties nutekėjimas sistemoje "Windows 10"

Prieš pradedant, turėtumėte žinoti, kad "Atminties nutekėjimas" yra programinės įrangos problema, kurią reikia atkurti, pvz., "Java", "JavaScript", "C / C ++", "Windows" ir kt. Fiziškai pakeisti RAM ar kietąjį diską nereikia.

Image
Image

Kodėl tai blogai?

Akivaizdu, kad atminties nutekėjimas yra blogas, nes tai yra klaida, sistemos trūkumas. Bet sužinosime, kaip tiksliai ji veikia sistemą:

  1. Kadangi atmintis nėra išlaisvinta netgi tada, kai ji nenaudojama, tai atminties išeikvojimas.
  2. Atminties išeikvojimas lemia programinės įrangos senėjimą.
  3. Sumažinus laisvą atmintį, sistema padidina atsako trukmę ir blogą našumą.
  4. Nepastebėta atminties nutekėjimas galiausiai gali sukelti programinės įrangos sugadinimą.

Norint nustatyti atminties nutekėjimą, programuotojas turi turėti prieigą prie programos šaltinio kodo.

Nutekėjimo nustatymas

Kad išspręstume problemą, pirmiausia turime ją identifikuoti. Pagrindiniai veiksmai, skirti atminties nutekėjimui rasti:

  1. Patvirtinimas: Nustatymas, ar įvyko nutekėjimas.
  2. Atraskite branduolio režimo atminties nutekėjimą: Nutekėjimo vietos nustatymas naudojant branduolio režimo tvarkyklės komponentą.
  3. Vartotojo atmintinės nuotėkio nustatymas: Nuotėkio nustatymas vartotojo režimo tvarkyklės ar programos.

Atminties paskirstymas

Yra skirtingi režimai, pagal kuriuos programos priskiria RAM. Jei po naudojimo nebus išlaisvintas, atminties nutekėjimas atsiras nepriklausomai nuo paskirstymo būdo. Kai kurie bendrieji paskirstymo modeliai:

  1. HealAlloc funkcija atminties paskirstymui. C / C ++ runtime ekvivalentai yra malloc ir nauji.
  2. VirtualAlloc funkcija, skirta tiesioginiam paskirstymui iš OS.
  3. Kernel32 API palaiko programos branduolį. Pavyzdys, CreateFile, CreateThread.
  4. User32 API ir Gdi32 API.

Atminties nutekėjimo prevencija

Mes visi žinome, kad prevencija yra geriau nei gydymas, todėl yra keli būdai, kaip išvengti atminties nutekėjimo.

Stebėjimo įpročiai

Image
Image

Jums reikia stebėti nenormalų RAM naudojimą atskirose programose ir programose. Galite eiti į "Windows" užduočių tvarkyklę paspausdami CTRL + SHIFT + ESC ir pridėti tokius stulpelius kaip rankenos, naudotojo objektai, GDI objektai ir tt

Tai padės lengvai stebėti išteklių naudojimą.

Microsoft įrankiai, skirti diagnozuoti atminties nutekėjimą

Įvairūs įrankiai diagnozuoja atminties nutekimus įvairiems paskirstymo būdams:

  1. Paraiškos tikrinimo priemonė diagnozuoja krūvį.
  2. UMDH ("Windows derinimo įrankių" komponentas) diagnozuoja atskirų procesų nuotėkius, stebėdamas krūvos atminties paskirstymą.
  3. Trace Capture, skirta išsamią RAM naudojimo analizę.
  4. "Xperf" peržvelgia krosnių paskirstymo modelius.
  5. CRT Debug Heap ne tik seka kuro paskirstymą, bet ir leidžia kodavimo praktikai sumažinti nutekimus.
  6. "JavaScript" atminties nutekėjimo detektorius debuguoja atmintinių nuotėkius koduose.

Naudojimo patarimai

  1. Naudokite branduolį RankenaS ir tokie kiti "Smart" nurodymai, skirti "Win32" ištekliams ir krūvelėms.
  2. Gaukite užsiėmimus dėl automatinio išteklių valdymo, skirto branduolių paskirstymui iš ATL bibliotekos. C + + standartas auto_ptr už krūvą paskirstymą.
  3. Integruoti COM sąsajos rodyklę "intelektualiuose nurodymuose" naudodami " _Com_ptr_t arba _bstr_t arba _variant_t.
  4. Stebėkite.NET kodą nenormaliai atminties naudojimui.
  5. Vykdykite daugybę funkcijų išėjimo kelio, kad funkcijos pabaigoje būtų galima išlaisvinti paskirstymą iš kintamųjų daugumoje blokų.
  6. Naudokite gimtąją išimtį tik išlaisvinus visus paskirstymus _finally block. Norėdami išnaudoti C + + išimtis, apsupkite visą krūvą ir tvarkykite paskirstymą į sumaniuosius rodiklius.
  7. Visada skambinkite PropVariantClear prieš paleidžiant ar išmetant PROPVARIANT objektą.

"Windows" atminties nutekėjimo trikčių šalinimas

Kaip ir įvairūs būdai, kaip užkirsti kelią atminties nutekėjimui, yra įvairių būdų, kaip sustabdyti atminties nutekėjimą.

1] Uždarykite procesus ir paleiskite iš naujo.

Jei pastebėsite, kad nereikalingas procesas yra per daug atminties, galite uždaryti procesą užduočių tvarkytuve. Jums reikės iš naujo paleisti įrenginį taip, kad laisvos vietos būtų galima naudoti kiti procesai. Be iš naujo paleiskite atmintinės nuotėkio problemą nebus išspręsta. Vienas konkretus procesas, kurio klaidos gali sulėtinti kompiuterį, yra "Runtime Broker". Pabandykite, jei išjungus, kad vienintelis veikia.

2] Atminties diagnostikos įrankiai

Image
Image

Norėdami pasiekti integruotą "Memory" diagnostikos įrankį "Windows":

  1. Išsaugokite visus savo svarbius darbus.
  2. Paspauskite Win + R atidaryti Paleisti langas.
  3. Įveskite komandą mdsched.exe viduje konors Paleisti langas.
  4. Iš naujo paleiskite kompiuterį.
  5. Po restarto atlikite pagrindinį nuskaitymą arba eikite į " Išplėstinė"Tokios pasirinktys kaip" Bandymo mišinys"Arba" Pass skaičius ’.
  6. Paspauskite F10 pradėti bandymą.

Tai vis dar laikina taisyma.

3] Patikrinkite tvarkyklių naujinius

Pasenę tvarkyklės sukelia atminties nutekėjimą. Visus tvarkykles atnaujinkite:
Pasenę tvarkyklės sukelia atminties nutekėjimą. Visus tvarkykles atnaujinkite:
  1. Paspauskite Win + R ir atidarykite Paleisti langas. Įveskite devmgmt.msc ir paspauskite Enter. Tai paims jus Įrenginių tvarkytuvė.
  2. Patikrinkite pasenusias tvarkykles ir atnaujinkite juos visus.
  3. Dėl atnaujinimų, kuriuos galėjote praleisti, patikrinkite "Windows" naujinimą.

Tai buvo paprasta.

4] Optimizuokite našumą

"Windows" pritaikymas našumui valdys viską, įskaitant procesoriaus planavimą ir atminties naudojimą, kad sustabdytų atminties nutekėjimą. Atlikite šiuos veiksmus:
"Windows" pritaikymas našumui valdys viską, įskaitant procesoriaus planavimą ir atminties naudojimą, kad sustabdytų atminties nutekėjimą. Atlikite šiuos veiksmus:
  1. Dešiniuoju pelės mygtuku spustelėkite " Šis kompiuteris"Ir pasirinkite" Išplėstinė'Nustatymai kairiojoje srityje.
  2. Pagal " Išplėstinė"Skirtuką eik į" Spektaklis", Po kurio rašoma" Nustatymai ’.
  3. Patikrinti ' Pakoreguokite geriausius rezultatus"Ir spustelėkite Gerai.
  4. Iš naujo paleiskite ir patikrinkite, ar problema išspręsta.

Jei šis paprastas sprendimas neveikia, pabandykite kitą sprendimą.

5] Išjungti programas, paleidžiamas paleisties

Neveikiančių programų išjungimas yra vienintelis būdas atsikratyti atminties nutekėjimo problemos. Eikite į užduočių tvarkyklę ir išjunkite trikdžių programą. Jei nežinote, kurios programos kelia problemų, atlikite šiuos veiksmus:
Neveikiančių programų išjungimas yra vienintelis būdas atsikratyti atminties nutekėjimo problemos. Eikite į užduočių tvarkyklę ir išjunkite trikdžių programą. Jei nežinote, kurios programos kelia problemų, atlikite šiuos veiksmus:
  1. Eiti į ' Užduočių tvarkyklė ’.
  2. Eiti į ' Pradėti ’.
  3. Išjungti paleisties programas, kurių nereikia paleisti pagal numatytuosius nustatymus.

6] Defrag standusis diskas

Nors "Windows 10" tai automatiškai atlieka, gali prireikti truputį defraguoti standžiųjų diskų, kad būtų galima optimizuoti našumą.
Nors "Windows 10" tai automatiškai atlieka, gali prireikti truputį defraguoti standžiųjų diskų, kad būtų galima optimizuoti našumą.
  1. Eiti į ' Šis kompiuteris"Arba" Mano kompiuteris ’.
  2. Dešiniuoju pelės mygtuku spustelėkite sistemos kietąjį diską (dažniausiai C: diską).
  3. Eiti į ' Įrankiai' pagal ' Savybės"Ir pasirinkite" Optimizuokite ’.
  4. Pasirinkite disko defrag ir pasirinkite " Analizuoti ’.

Paleiskite kompiuterį iš naujo po naujo suskaidymo.

7] "ClearPage" failas išjungiamas

Dabar tampa sudėtingas - bet nesijaudinkite. Štai kaip išvalyti puslapio failą kiekvieną išjungimą:

  1. Įveskite regedit Ieškoti, norėdami paleisti registro redaktorių.
  2. Įveskite šį kelią: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  3. Pakeiskite vertę ClearPageFileAtShutDown į "1".
  4. Išsaugokite pakeitimus ir iš naujo paleiskite įrenginį.

Tai turėtų tai padaryti.

9] Išjunkite Superfetch

Ši "Windows" paslauga optimizuoja našumą, sumažinant įkrovos laiką. Tai leidžia "Windows" valdyti RAM naudojimą. Gyvenimas po "Superfetch" išjungimo nėra patogus, tačiau jei reikia, tai padaryti. Bent jau pabandykite tai išspręsti problemą:

  1. Paieška services.msc ir eikite į Paslaugų tvarkyklę.
  2. Ieškoti ' Superfetch"Ir dešiniuoju pelės mygtuku spustelėkite jį, kad eikite į" Savybės ’.
  3. Pasirinkite " Sustabdyti ’.
  4. Taip pat " Išjungti"Paslauga iš išskleidžiamojo meniu.
  5. Iš naujo paleiskite kompiuterį ir patikrinkite, ar našumas pagerėjo.

Įgalinkite "Superfetch", jei šis neveikia.

10] Patikrinkite kenkėjišką programinę įrangą

Norėdami nuskaityti ir pašalinti kenkėjiškas programas, naudokite trečiosios šalies antivirusinę programinę įrangą arba "Windows 10" vidaus "Windows Defender". Įsitikinkite, kad atnaujinta antivirusinė programa palaiko jūsų operacinę sistemą, kad netaptų atminties nutekėjimo priežastimi.

Čia galite rasti bet kokį sprendimą, kurio jums prireiks rasti ar išvengti atminties nutekėjimo. Galite sužinoti daugiau apie atminties nutekėjimą MSDN ir "Microsoft".

Susijusios žinutės:

  • Ištaisykite "Windows Stop" klaidas arba "Blue Screen of Death"
  • Kodėl Windows rodo mažiau RAM, nei įdiegta?
  • "Windows 10" paleiskite, paleiskite, išjunkite greičiau
  • Fizinės atminties ribos "Crash Dump" bylose "Windows 10/8/7"
  • Atminties suspaudimas sistemoje "Windows 10"

Rekomenduojamas: