Memoria

Come trovare e correggere le perdite di memoria in Windows 10

Come trovare e correggere le perdite di memoria in Windows 10

UN Perdita di memoria è un'errata collocazione delle risorse in un programma per computer a causa di un'allocazione errata della memoria. Succede quando una posizione RAM non in uso rimane non rilasciata. 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 si sia verificata quando la memoria non è accessibile nonostante non sia in uso.

Perdite di memoria in Windows 10

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

Perché è brutto?

È ovvio che una perdita di memoria è dannosa perché è un bug, un difetto nel sistema. Ma scopriamo come influisce esattamente sul sistema:

  1. Poiché la memoria non viene liberata anche quando non viene utilizzata, ne risulta un esaurimento della memoria memory.
  2. L'esaurimento della memoria provoca l'invecchiamento del software.
  3. La riduzione della memoria disponibile comporta un aumento dei tempi di risposta e prestazioni scadenti del sistema.
  4. Una perdita di memoria non controllata può eventualmente portare al crash di un'applicazione.

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

Localizzare la 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 una perdita di memoria in modalità kernel: Individuazione di una perdita causata da un componente del driver in modalità kernel.
  3. Trovare la perdita di memoria in modalità utente: Individuazione di una perdita causata da un driver o un'app in modalità utente.

Allocazione della memoria

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

  1. Funzione HealAlloc per l'allocazione della memoria heap. Gli equivalenti di runtime C/C++ sono malloc e new.
  2. Funzione VirtualAlloc per l'allocazione diretta dal sistema operativo.
  3. API Kernel32 per contenere 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.

Monitoraggio delle abitudini

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

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

Leggere: Quali sono i tipi di memoria in un computer?

Strumenti Microsoft per diagnosticare le perdite di memoria

Vari strumenti diagnosticano le perdite di memoria per varie modalità di allocazione:

  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 di memoria dell'heap.
  3. Trace Capture per un'analisi approfondita dell'utilizzo della RAM.
  4. Anche Xperf tiene traccia dei modelli di allocazione dell'heap.
  5. CRT Debug Heap non solo tiene traccia delle allocazioni heap, ma consente 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 classi per la gestione automatica delle risorse per le allocazioni del kernel dalla libreria ATL. Lo standard C++ ha auto_ptr per le allocazioni heap.
  3. Incapsula i puntatori dell'interfaccia COM all'interno di "puntatori intelligenti" con l'aiuto di _com_ptr_t o _bstr_t o _variant_t.
  4. Monitora il .NET per un utilizzo anomalo della memoria.
  5. Evita più percorsi di uscita per le funzioni per consentire alle allocazioni di essere liberate dalle variabili nella maggior parte dei blocchi entro la fine di una funzione.
  6. Usa le eccezioni native solo dopo aver liberato tutte le allocazioni nel blocco _finally. Avvolgere tutto l'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 perdita di memoria in Windows

Proprio come i vari modi per prevenire le perdite di memoria, ci sono vari modi per fermare le perdite di memoria. Ma prima di iniziare, ricordati di creare prima un punto di ripristino del sistema.

1] Chiudi i processi e riavvia.

Se vedi che un processo non necessario occupa 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 sarà risolto. Un particolare processo che presenta bug per rallentare il PC è Runtime Broker. Prova se disabilitarlo da solo funziona.

2] Strumenti di diagnostica della memoria

Per accedere allo strumento di diagnostica della memoria integrato per Windows:

  1. Salva tutto il tuo lavoro importante.
  2. stampa Vinci + 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 scegli 'Avanzate'opzioni come'Miscela di prova' o 'Numero di passaggi'.
  6. stampa F10 per iniziare il test.

Queste sono ancora correzioni temporanee.

3] Controlla gli aggiornamenti dei driver

Driver obsoleti causano perdite di memoria. Tieni aggiornati tutti i driver:

  1. stampa Vinci + R e apri il Correre finestra. genere devmgmt.msc e premi Invio. Ti porterà al Gestore dispositivi.
  2. Verifica la presenza di driver obsoleti e aggiornali tutti.
  3. Per gli aggiornamenti che potresti aver perso, controlla in Windows Update.

Questo era semplice.

4] Ottimizza le prestazioni

La regolazione di Windows per le prestazioni gestirà tutto, inclusa la pianificazione del processore e l'utilizzo della memoria per fermare le perdite di memoria. Segui questi passi:

  1. Fare clic con il tasto 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 è stato risolto.

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

5] Disabilita i programmi in esecuzione all'avvio

La disabilitazione dei programmi fastidiosi è l'unico modo per eliminare il problema della perdita di memoria. Vai a Task Manager e disabilita il programma di risoluzione dei problemi. Se non sai quali programmi stanno creando il problema, procedi come segue:

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

6] Deframmentazione del disco rigido

Sebbene Windows 10 lo faccia automaticamente, potrebbe essere necessario deframmentare i dischi rigidi di tanto in tanto per ottimizzare le prestazioni:

  1. Vai a 'Questo PC' o 'Il mio computer'.
  2. Fare clic con il pulsante destro del mouse sul disco rigido del sistema (di solito C: drive).
  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 allo spegnimento

Sta diventando complesso ora, ma non preoccuparti. Ecco come cancellare il file di paging ad ogni spegnimento:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerGestione della memoria

Questo dovrebbe farlo. Ricorda che il processo di spegnimento richiederà un po' più di tempo.

9] Disabilita Superfetch

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

  1. Ricerca Servizi.msc e vai su Gestore servizi.
  2. Cercare 'Superfetch' e fai clic con il pulsante destro del mouse per andare a 'Proprietà'.
  3. Selezionare 'Fermare'.
  4. Anche 'disattivare'il servizio dal menu a tendina.
  5. Riavvia il PC e controlla se le prestazioni sono migliorate.

Abilita Superfetch se questo non ha funzionato.

10] Verifica la presenza di malware

Usa un software antivirus di terze parti o Windows Defender interno di Windows 10 per scansionare ed eliminare il malware. Assicurati che l'antivirus sia aggiornato per supportare il tuo sistema operativo in modo che non diventi il ​​motivo della perdita di memoria.

Ogni soluzione di cui potresti aver bisogno per trovare o prevenire perdite di memoria è proprio qui. Puoi leggere di più sulle perdite di memoria su MSDN e Microsoft.

WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...
Il tasto sinistro del mouse non funziona su Windows 10
Se stai utilizzando un mouse dedicato con il tuo laptop o computer desktop ma il il tasto sinistro del mouse non funziona su Windows 10/8/7 per qualch...
Il cursore salta o si sposta in modo casuale durante la digitazione in Windows 10
Se scopri che il cursore del mouse salta o si sposta da solo, automaticamente, in modo casuale durante la digitazione nel laptop o nel computer Window...