Atmiņa

Kā atrast un novērst atmiņas noplūdes operētājsistēmā Windows 10

Kā atrast un novērst atmiņas noplūdes operētājsistēmā Windows 10

A Atmiņas noplūde ir nepareiza resursu izvietošana datorprogrammā nepareizas atmiņas piešķiršanas dēļ. Tas notiek, ja neizmantotā RAM vieta paliek neizlaista. Atmiņas noplūdi nedrīkst sajaukt ar kosmosa noplūdi, kas attiecas uz programmu, kurā tiek izmantots vairāk RAM nekā nepieciešams. Tiek uzskatīts, ka atmiņas noplūde sistēmā Windows 10/8/7 ir notikusi, kad atmiņa vienkārši nav pieejama, neskatoties uz to, ka tā netiek lietota.

Atmiņas noplūde operētājsistēmā Windows 10

Pirms sākat, jums jāzina, ka atmiņas noplūde ir programmatūras problēma atkļūdošanai - piemēram, Java, JavaScript, C / C ++, Windows utt. Fiziski RAM vai cietā diska nomaiņa nav nepieciešama.

Kāpēc tas ir slikti

Ir acīmredzams, ka atmiņas noplūde ir slikta, jo tā ir kļūda, sistēmas trūkums. Bet noskaidrosim, kā tieši tas ietekmē sistēmu:

  1. Tā kā atmiņa netiek atbrīvota pat tad, kad to nelieto, tā atmiņa tiek iztukšota.
  2. Atmiņas iztukšošana noved pie programmatūras novecošanas.
  3. Samazināta pieejamā atmiņa palielina reakcijas laiku un sliktu sistēmas darbību.
  4. Nepārbaudīta atmiņas noplūde galu galā var izraisīt lietojumprogrammas avāriju.

Lai identificētu atmiņas noplūdi, programmētājam ir jābūt piekļuvei programmas avota kodam.

Noplūdes atrašanās vieta

Lai atrisinātu problēmu, mums tā vispirms ir jāidentificē. Pamata darbības, lai atrastu atmiņas noplūdi, ir šādas:

  1. Apstiprinājums: Nosakiet, vai ir notikusi noplūde.
  2. Kodola režīma atmiņas noplūdes atrašana: Atrast kodola režīma draivera komponenta izraisītu noplūdi.
  3. Lietotāja režīma atmiņas noplūdes atrašana: Lietotāja režīma draivera vai lietotnes izraisītas noplūdes atrašana.

Atmiņas piešķiršana

Ir dažādi režīmi, kuros lietojumprogrammas piešķir RAM. Ja pēc izmantošanas vieta netiks atbrīvota, atmiņas noplūde notiks neatkarīgi no piešķiršanas veida. Daži izplatīti sadales modeļi ir:

  1. HealAlloc funkcija kaudzes atmiņas piešķiršanai. C / C ++ izpildlaika ekvivalenti ir malloc un jauni.
  2. VirtualAlloc funkcija tiešai piešķiršanai no OS.
  3. Kernel32 API, lai saglabātu lietotnes kodola atmiņu. Piemērs: CreateFile, CreateThread.
  4. User32 API un Gdi32 API.

Atmiņas noplūdes novēršana

Mēs visi zinām, ka profilakse ir labāka par ārstēšanu, tāpēc šeit ir daži veidi, kā novērst atmiņas noplūdi.

Uzraudzības paradumi

Jums jāraugās, lai atsevišķas programmas un lietojumprogrammas nepietiekami izmantotu RAM. Varat pāriet uz Windows uzdevumu pārvaldnieku, nospiežot CTRL + SHIFT + ESC un pievienojiet kolonnas, piemēram, Rokturi, Lietotāja objekti, GDI objekti utt.

Tas palīdzēs jums viegli uzraudzīt resursu izmantošanu.

Lasīt: Kādi ir atmiņas veidi datorā?

Microsoft rīki atmiņas noplūdes diagnosticēšanai

Dažādi rīki diagnosticē atmiņas noplūdes dažādiem piešķiršanas režīmiem:

  1. Application Verifier diagnosticē kaudzes noplūdes.
  2. UMDH (Windows atkļūdošanas rīku sastāvdaļa) diagnosticē atsevišķu procesu noplūdes, uzraugot kaudzes atmiņas sadalījumu.
  3. Trace Capture, lai veiktu rūpīgu RAM izmantošanas analīzi.
  4. Arī Xperf izseko kaudzes piešķiršanas modeļus.
  5. CRT atkļūdošanas kaudze ne tikai izseko kaudzes piešķiršanu, bet arī ļauj kodēšanas praksei samazināt noplūdes.
  6. JavaScript atmiņas noplūdes detektors atkļūdo atmiņas noplūdes kodos.

Lietošanas padomi

  1. Izmantojiet kodolu ROKTURISs un citas viedās norādes par Win32 resursiem un kaudzes piešķiršanu.
  2. Iegūstiet klases automātiskai resursu pārvaldībai kodola piešķiršanai no ATL bibliotēkas. C ++ standartam ir auto_ptr kaudzes piešķiršanai.
  3. Iekļaujiet COM saskarnes rādītājus viedajos rādītājos ar _com_ptr_t vai _bstr_t vai _variant_t.
  4. Uzraudzīt .NET kods patoloģiskai atmiņas lietošanai.
  5. Izvairieties no vairākiem izejas ceļiem funkcijām, lai līdz funkcijas beigām ļautu piešķīrumiem atbrīvoties no mainīgajiem lielākajā daļā bloku.
  6. Vietējos izņēmumus izmantojiet tikai pēc visu piešķīrumu atbrīvošanas _finally blokā. Lai izmantotu C ++ izņēmumus, aptiniet visus kaudzes un rīkojumu sadalījumus viedajos rādītājos.
  7. Vienmēr zvaniet PropVariantClear funkciju, pirms atkārtoti inicializēt vai izmest objektu PROPVARIANT.

Atmiņas noplūdes problēmu novēršana sistēmā Windows

Tāpat kā dažādie veidi, kā novērst atmiņas noplūdi, ir dažādi, kā apturēt atmiņas noplūdi. Bet pirms sākat, atcerieties vispirms izveidot sistēmas atjaunošanas punktu.

1] Aizveriet procesus un restartējiet.

Ja redzat, ka nevajadzīgs process aizņem pārāk daudz RAM, procesu varat pārtraukt uzdevumu pārvaldniekā. Jums būs jārestartē ierīce, lai atbrīvotā vieta būtu pieejama citiem procesiem. Bez restartēšanas atmiņas noplūdes problēma netiks atrisināta. Viens īpašs process, kurā ir kļūdas, lai palēninātu datoru, ir Runtime Broker. Izmēģiniet, vai tikai tā atspējošana darbojas.

2] Atmiņas diagnostikas rīki

Lai piekļūtu Windows iebūvētajam atmiņas diagnostikas rīkam:

  1. Saglabājiet visus svarīgos darbus.
  2. Nospiediet Win + R lai atvērtu Palaist logs.
  3. Ierakstiet komandu mdsched.exe iekš Palaist logs.
  4. Restartējiet datoru.
  5. Pēc restartēšanas veiciet pamata skenēšanu vai dodieties uz 'Papildu'iespējas, piemēram'Pārbaudes maisījums"vai"Pass skaits".
  6. Nospiediet F10 lai sāktu testu.

Tie joprojām ir pagaidu labojumi.

3] Pārbaudiet, vai nav atjauninājumu draiveri

Novecojuši draiveri izraisa atmiņas noplūdi. Atjauniniet visus draiverus:

  1. Nospiediet Win + R un atveriet Palaist logs. Tips devmgmt.msc un nospiediet Enter. Tas aizvedīs jūs uz Ierīču pārvaldnieks.
  2. Pārbaudiet, vai nav novecojušu draiveru, un atjauniniet tos visus.
  3. Lai iegūtu atjauninājumus, iespējams, esat palaidis garām, pārbaudiet Windows atjaunināšanu.

Tas bija vienkārši.

4] Optimizējiet veiktspēju

Windows pielāgošana veiktspējai pārvaldīs visu, ieskaitot procesora plānošanu un atmiņas lietošanu, lai apturētu atmiņas noplūdi. Veiciet šīs darbības:

  1. Ar peles labo pogu noklikšķiniet uzŠis datorsun atlasietPapildukreisajā rūtī.
  2. Saskaņā 'Papilducilne, dodieties uzIzrāde", kam seko"Iestatījumi".
  3. Pārbaudīt 'Pielāgojiet, lai sasniegtu vislabāko sniegumuun noklikšķiniet labi.
  4. Restartējiet un pārbaudiet, vai problēma ir atrisināta.

Ja šis vienkāršais risinājums nedarbojās, izmēģiniet nākamo risinājumu.

5] Atspējojiet programmas, kas darbojas startēšanas laikā

Traucējošo programmu atspējošana ir vienīgais veids, kā atbrīvoties no atmiņas noplūdes problēmas. Dodieties uz uzdevumu pārvaldnieku un atspējojiet problēmu novēršanas programmu. Ja nezināt, kuras programmas rada problēmas, rīkojieties šādi:

  1. Iet uz 'Uzdevumu pārvaldnieks".
  2. Iet uz 'Uzsākt".
  3. Atspējojiet startēšanas programmas, kuras pēc noklusējuma nav jādarbina.

6] Defrag cietais disks

Lai gan operētājsistēma Windows 10 to automātiski dara jūsu vietā, lai optimizētu veiktspēju, jums, iespējams, būs laiku pa laikam jādragāj cietie diski:

  1. Iet uz 'Šis dators"vai"Mans dators".
  2. Ar peles labo pogu noklikšķiniet uz sistēmas cietā diska (parasti C: disks).
  3. Iet uz 'Rīki' zem 'Rekvizītiun atlasietOptimizēt".
  4. Atlasiet disku, kuru defragēt, un atlasiet 'Analizēt".

Pēc jaunās sadrumstalotības restartējiet datoru.

7] ClearPage fails pēc izslēgšanas

Tagad tas kļūst sarežģīts - bet neuztraucieties. Lūk, kā notīrīt lapas failu katrā izslēgšanas reizē:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager Atmiņu pārvaldība

Tas būtu jādara. Neaizmirstiet, ka jūsu izslēgšanas process prasīs nedaudz vairāk laika.

9] Atspējot Superfetch

Šis Windows pakalpojums optimizē veiktspēju, samazinot sāknēšanas laiku. Tas ļauj Windows pārvaldīt RAM izmantošanu. Dzīve pēc Superfetch atspējošanas nav ērta, taču dariet to, ja nepieciešams. Vismaz izmēģiniet to vien, lai izolētu problēmu:

  1. Meklēt pakalpojumus.msc un dodieties uz pakalpojumu pārvaldnieku.
  2. Meklēt 'Superfetch"un ar peles labo pogu noklikšķiniet uz tā, lai pārietu uz"Rekvizīti".
  3. Atlasīt 'Apstājies".
  4. ArīAtspējot'pakalpojums no nolaižamās izvēlnes.
  5. Restartējiet datoru un pārbaudiet, vai veiktspēja ir uzlabojusies.

Iespējojiet Superfetch, ja šis nedarbojās.

10] Pārbaudiet, vai nav ļaunprātīgas programmatūras

Lai skenētu un novērstu ļaunprātīgu programmatūru, izmantojiet trešās puses antivīrusu programmatūru vai Windows 10 iekšējo Windows Defender. Pārliecinieties, vai antivīruss ir atjaunināts, lai atbalstītu jūsu operētājsistēmu, lai tas galu galā nekļūtu par atmiņas noplūdes cēloni.

Katrs risinājums, kas jums varētu būt nepieciešams, lai atrastu vai novērstu atmiņas noplūdi, ir tieši šeit. Jūs varat uzzināt vairāk par atmiņas noplūdēm MSDN un Microsoft.

5 labākās arkādes spēles Linux
Mūsdienās datori ir nopietnas mašīnas, kuras izmanto spēlēšanai. Ja jūs nevarat iegūt jauno augsto rezultātu, jūs zināt, ko es domāju. Šajā ierakstā j...
Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...
Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...