Trova e correggi le perdite di memoria in Windows 10/8/7

Sommario:

Trova e correggi le perdite di memoria in Windows 10/8/7
Trova e correggi le perdite di memoria in Windows 10/8/7

Video: Trova e correggi le perdite di memoria in Windows 10/8/7

Video: Trova e correggi le perdite di memoria in Windows 10/8/7
Video: Miglior portatile 2023 [Gennaio] - YouTube 2024, Novembre
Anonim

UN Perdita di memoria è uno smarrimento di risorse in un programma per computer a causa di allocazione errata della memoria. Succede quando una locazione RAM non in uso rimane inutilizzata. Una perdita di memoria non deve essere confusa con una perdita di spazio, che si riferisce a un programma che utilizza più RAM del necessario. Si dice che una perdita di memoria su un sistema Windows 10/8/7 abbia avuto luogo quando la memoria non è accessibile nonostante non sia in uso.

Perdite di memoria in Windows 10

Prima di iniziare, è necessario sapere che la perdita di memoria è un problema software per il debug, ad esempio in Java, JavaScript, C / C ++, Windows, ecc. Non è necessaria la sostituzione fisica della RAM o del disco rigido.

Image
Image

Perché è cattivo

È ovvio che una perdita di memoria è negativa perché è un bug, un difetto nel sistema. Ma scopriamo come influenza esattamente il sistema:

  1. Poiché la memoria non viene liberata anche quando non è in uso, si verifica un esaurimento della memoria.
  2. L'esaurimento della memoria determina l'invecchiamento del software.
  3. La memoria disponibile ridotta porta ad un aumento del tempo di risposta e delle scarse prestazioni del sistema.
  4. Perdita di memoria non controllata può portare al crash di un'applicazione.

Per identificare una perdita di memoria, un programmatore deve avere accesso al codice sorgente del programma.

Individuazione della perdita

Per risolvere un problema, dobbiamo prima identificarlo. I passaggi di base per individuare una perdita di memoria sono:

  1. Affermazione: Determinare se si è verificata una perdita.
  2. Trovare perdite di memoria in modalità kernel: Individuazione di una perdita causata da un componente del driver in modalità kernel.
  3. Ricerca perdita di memoria in modalità utente: Individuazione di una perdita causata dal driver o dall'app in modalità utente.

Allocazione della memoria

Esistono diverse modalità in cui le applicazioni allocano RAM. Se lo spazio non viene liberato dopo l'uso, la perdita di memoria si verificherà indipendentemente dalla modalità di allocazione. Alcuni schemi di allocazione comuni sono:

  1. Funzione HealAlloc per l'allocazione della memoria heap. Gli equivalenti di runtime di C / C ++ sono malloc e new.
  2. Funzione VirtualAlloc per l'allocazione diretta dal sistema operativo.
  3. API Kernel32 per conservare la memoria del kernel per l'app. Esempio, CreateFile, CreateThread.
  4. API User32 e API Gdi32.

Prevenire perdite di memoria

Sappiamo tutti che prevenire è meglio che curare, quindi ecco alcuni modi per prevenire una perdita di memoria.

Abitudini di monitoraggio

Image
Image

È necessario tenere d'occhio l'utilizzo anomalo della RAM da parte di programmi e applicazioni individuali. Puoi andare al Task Manager di Windows premendo CTRL + SHIFT + ESC e aggiungi le colonne come Gestori, Oggetti utente, Oggetti GDI, ecc.

Ciò ti aiuterà a monitorare facilmente l'utilizzo delle risorse.

Strumenti Microsoft per diagnosticare perdite di memoria

Vari strumenti diagnosticano perdite di memoria per varie modalità di assegnazione:

  1. Application Verifier diagnostica le perdite di heap.
  2. UMDH (un componente di Windows Debugging Tools) diagnostica le perdite per i singoli processi monitorando le allocazioni della memoria heap.
  3. Trace Capture per un'analisi approfondita dell'utilizzo della RAM.
  4. Anche Xperf tiene traccia dei modelli di allocazione degli heap.
  5. Debug CRT Heap non solo traccia le allocazioni dell'heap ma abilita anche le pratiche di codifica per ridurre al minimo le perdite.
  6. JavaScript Memory Leak Detector esegue il debug delle perdite di memoria nei codici.

Suggerimenti per l'uso

  1. Usa il kernel MANIGLIAs e altri puntatori intelligenti per risorse Win32 e allocazioni heap.
  2. Ottieni le classi per la gestione automatica delle risorse per le allocazioni del kernel dalla libreria ATL. Lo standard C ++ ha auto_ptr per allocazioni di heap.
  3. Incapsula i puntatori di interfaccia COM all'interno di "puntatori intelligenti" con l'aiuto di _com_ptr_t o _bstr_t o _variant_t.
  4. Monitorare il codice.NET per l'utilizzo anomalo della memoria.
  5. Evita percorsi di uscita multipli per le funzioni affinché le allocazioni vengano liberate dalle variabili nella maggior parte dei blocchi entro la fine di una funzione.
  6. Utilizzare le eccezioni native solo dopo aver liberato tutte le allocazioni nel blocco _finally. Racchiudere tutti gli heap e gestire le allocazioni in puntatori intelligenti per utilizzare le eccezioni C ++.
  7. Chiama sempre il PropVariantClear funzione prima di reinizializzare o scartare un oggetto PROPVARIANT.

Risoluzione dei problemi di perdite di memoria in Windows

Proprio come i vari modi per prevenire perdite di memoria, ci sono vari modi per fermare le perdite di memoria.

1] Chiudi processi e riavvia.

Se vedi che un processo non necessario sta occupando troppa RAM, puoi terminare il processo nel Task Manager. Sarà necessario riavviare il dispositivo in modo che lo spazio liberato sia disponibile per l'utilizzo da parte di altri processi. Senza un problema di perdita di memoria di riavvio non verrà risolto. Un particolare processo che ha dei bug per rallentare il PC è Runtime Broker. Prova se disabilitare ciò funziona da solo.

2] Strumenti di diagnostica della memoria

Per accedere allo strumento di diagnostica memoria integrato per Windows:
Per accedere allo strumento di diagnostica memoria integrato per Windows:
  1. Salva tutto il tuo lavoro importante.
  2. stampa Win + R per aprire il Correre finestra.
  3. Digita il comando MdSched.exe nel Correre finestra.
  4. Riavvia il PC.
  5. Dopo un riavvio, esegui una scansione di base o vai per l ' Avanzate'Opzioni come' Test mix' o ' Passa il conteggio ’.
  6. stampa F10 per iniziare il test.

Queste sono ancora correzioni temporanee.

3] Controlla gli aggiornamenti del driver

Driver obsoleti causano perdite di memoria. Mantieni tutti i driver aggiornati:
Driver obsoleti causano perdite di memoria. Mantieni tutti i driver aggiornati:
  1. stampa Win + R e apri il Correre finestra. genere devmgmt.msc e premere Invio. Ti porterà al Gestore dispositivi.
  2. Controlla i driver obsoleti e aggiornali tutti.
  3. Per gli aggiornamenti che potresti aver perso, controlla Windows Update.

Questo era semplice

4] Ottimizza le prestazioni

La regolazione di Windows per le prestazioni gestirà tutto, compresa la pianificazione del processore e l'utilizzo della memoria per arrestare le perdite di memoria. Segui questi passi:
La regolazione di Windows per le prestazioni gestirà tutto, compresa la pianificazione del processore e l'utilizzo della memoria per arrestare le perdite di memoria. Segui questi passi:
  1. Fai clic destro su ' Questo PC'E seleziona' Avanzate'Impostazioni nel riquadro di sinistra.
  2. Sotto il ' Avanzate'Scheda, vai a' Prestazione', seguito da ' impostazioni ’.
  3. Dai un'occhiata ' Regola per le migliori prestazioni'E clicca ok.
  4. Riavvia e controlla se il problema è risolto.

Se questa semplice soluzione non ha funzionato, prova la soluzione successiva.

5] Disabilita i programmi in esecuzione all'avvio

Image
Image

Disabilitare i programmi fastidiosi è l'unico modo per sbarazzarsi del problema di perdita di memoria. Vai a Task Manager e disabilita il programma di troublemaking. Se non sai quali programmi stanno creando il problema, fai questo:

  1. Vai a ' Task Manager ’.
  2. Vai a ' Avviare ’.
  3. Disabilitare i programmi di avvio che non è necessario eseguire per impostazione predefinita.

6] Defrag Hard Drive

Sebbene Windows 10 lo faccia automaticamente, potrebbe essere necessario eseguire la deframmentazione dei dischi rigidi occasionalmente per ottimizzare le prestazioni:
Sebbene Windows 10 lo faccia automaticamente, potrebbe essere necessario eseguire la deframmentazione dei dischi rigidi occasionalmente per ottimizzare le prestazioni:
  1. Vai a ' Questo PC' o ' Il mio computer ’.
  2. Fare clic con il pulsante destro sul disco rigido del sistema (in genere C: unità).
  3. Vai a ' Utensili' sotto ' Proprietà'E seleziona' Ottimizzare ’.
  4. Seleziona l'unità da deframmentare e seleziona ' Analizzare ’.

Riavvia il computer dopo la nuova frammentazione.

7] File ClearPage all'arresto

Ora sta diventando complicato, ma non preoccuparti. Ecco come cancellare il file di paging ad ogni arresto:

  1. genere regedit in Cerca per avviare l'editor del registro.
  2. Inserisci questo percorso: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  3. Cambia il valore di ClearPageFileAtShutDown su "1".
  4. Salva le modifiche e riavvia il dispositivo.

Questo dovrebbe farlo.

9] Disabilita Superfetch

Questo servizio di Windows ottimizza le prestazioni riducendo al minimo il tempo di avvio. Permette a Windows di gestire l'utilizzo della RAM. La vita dopo aver disabilitato Superfetch non è conveniente, ma fallo se devi. Almeno prova questo solo per isolare il problema:

  1. Ricerca services.msc e vai a Gestione servizi.
  2. Cercare ' Superfetch'E fai clic destro per andare a' Proprietà ’.
  3. Seleziona ' Stop ’.
  4. Anche ' disattivare'Il servizio dal menu a discesa.
  5. Riavvia il PC e controlla se le prestazioni sono migliorate.

Abilita Superfetch se questo non ha funzionato.

10] Controlla il malware

Utilizzare un software antivirus di terze parti o Windows Defender interno di Windows 10 per eseguire la scansione ed eliminare il malware. Assicurarsi che l'antivirus sia aggiornato per supportare il sistema operativo in modo che non diventi la ragione della perdita di memoria.

Ogni soluzione che potresti aver bisogno di trovare o prevenire perdite di memoria è proprio qui. È possibile leggere ulteriori informazioni sulle perdite di memoria su MSDN e Microsoft.

Articoli correlati:

  • Correggi gli errori di arresto di Windows o la schermata blu della morte
  • Perché Windows mostra meno RAM di quella installata?
  • Fai in modo che Windows 10 inizi, corri, chiudi più velocemente
  • Limiti di memoria fisica nei file di crash di Windows 10/8/7
  • Compressione della memoria in Windows 10

Consigliato: