Rechercher et réparer les fuites de mémoire dans Windows 10/8/7

Table des matières:

Rechercher et réparer les fuites de mémoire dans Windows 10/8/7
Rechercher et réparer les fuites de mémoire dans Windows 10/8/7

Vidéo: Rechercher et réparer les fuites de mémoire dans Windows 10/8/7

Vidéo: Rechercher et réparer les fuites de mémoire dans Windows 10/8/7
Vidéo: COMMENT SUPPRIMER UN VIRUS SUR SON PC ( SANS LOGICIEL ) - YouTube 2024, Mars
Anonim

UNE Fuite de mémoire est un mauvais placement de la ressource dans un programme informatique en raison d'une mauvaise allocation de mémoire. Cela se produit lorsqu'un emplacement de RAM non utilisé reste inédit. Une fuite de mémoire ne doit pas être confondue avec une fuite d’espace, qui fait référence à un programme utilisant plus de RAM que nécessaire. Une fuite de mémoire sur un système Windows 10/8/7 est réputée s'être produite lorsque la mémoire n'est tout simplement pas accessible alors qu'elle n'est pas utilisée.

Fuites de mémoire dans Windows 10

Avant de commencer, vous devez savoir que la fuite de mémoire est un problème logiciel à déboguer, par exemple en Java, JavaScript, C / C ++, Windows, etc. Le remplacement physique de la RAM ou du disque dur n’est pas requis.

Image
Image

Pourquoi est-ce mauvais

Il est évident qu'une fuite de mémoire est mauvaise car il s'agit d'un bug, d'une faille dans le système. Mais voyons comment cela affecte exactement le système:

  1. Étant donné que la mémoire n'est pas libérée même lorsqu'elle n'est pas utilisée, cela entraîne un épuisement de la mémoire.
  2. L'épuisement de la mémoire entraîne le vieillissement du logiciel.
  3. La mémoire disponible réduite entraîne une augmentation du temps de réponse et des performances médiocres du système.
  4. Une fuite de mémoire non contrôlée peut éventuellement entraîner le blocage d'une application.

Pour identifier une fuite de mémoire, un programmeur doit avoir accès au code source du programme.

Localiser la fuite

Afin de résoudre un problème, nous devons d'abord l'identifier. Les étapes de base pour localiser une fuite de mémoire sont les suivantes:

  1. Affirmation: Déterminer si une fuite s’est produite.
  2. Recherche d'une fuite de mémoire en mode noyau: Localisation d’une fuite causée par un composant de pilote en mode noyau.
  3. Recherche d'une fuite de mémoire en mode utilisateur: Localisation d’une fuite causée par un pilote ou une application en mode utilisateur.

Allocation de mémoire

Il existe différents modes dans lesquels les applications allouent de la RAM. Si l'espace n'est pas libéré après utilisation, la fuite de mémoire se produira quel que soit le mode d'allocation. Certains modèles d'allocation courants sont:

  1. Fonction HealAlloc pour l’allocation de mémoire en tas. Les équivalents d'exécution C / C ++ sont malloc et new.
  2. Fonction VirtualAlloc pour une affectation directe à partir du système d'exploitation.
  3. API Kernel32 pour contenir la mémoire du noyau pour l'application. Exemple, CreateFile, CreateThread.
  4. API User32 et API Gdi32.

Prévenir les fuites de mémoire

Nous savons tous qu'il vaut mieux prévenir que guérir, alors voici quelques moyens d'éviter une fuite de mémoire.

Habitudes de surveillance

Image
Image

Vous devez surveiller de près l’utilisation anormale de la RAM par des programmes et des applications individuels. Vous pouvez accéder au gestionnaire de tâches Windows en appuyant sur CTRL + SHIFT + ESC et ajoutez les colonnes telles que Handles, User Objects, GDI Objects, etc.

Cela vous aidera à surveiller facilement l'utilisation des ressources.

Outils Microsoft pour diagnostiquer les fuites de mémoire

Divers outils permettent de diagnostiquer les fuites de mémoire pour différents modes d'allocation:

  1. Le vérificateur d'applications diagnostique les fuites de tas.
  2. UMDH (un composant des outils de débogage Windows) diagnostique les fuites pour des processus individuels en surveillant les allocations de mémoire de tas.
  3. Trace Capture pour une analyse approfondie de l'utilisation de la RAM.
  4. Xperf suit également les schémas d'allocation de tas.
  5. CRT Debug Heap non seulement suit les allocations de tas, mais permet également aux pratiques de codage de minimiser les fuites.
  6. Le détecteur de fuite de mémoire JavaScript corrige les fuites de mémoire dans les codes.

Conseils d'utilisation

  1. Utiliser le noyau MANIPULERs et autres pointeurs intelligents pour les ressources Win32 et les allocations de tas.
  2. Obtenez des classes de gestion automatique des ressources pour les allocations de noyau à partir de la bibliothèque ATL. La norme C ++ a auto_ptr pour les allocations de tas.
  3. Encapsulez les pointeurs d’interface COM dans des «pointeurs intelligents» à l’aide de _com_ptr_t ou _bstr_t ou _variant_t.
  4. Surveillez le code.NET pour une utilisation anormale de la mémoire.
  5. Évitez les chemins de sortie multiples pour les fonctions afin de permettre aux affectations d'être libérées des variables de la plupart des blocs avant la fin d'une fonction.
  6. Utilisez les exceptions natives uniquement après avoir libéré toutes les allocations du bloc _finally. Encapsulez tous les tas et gérez les allocations dans des pointeurs intelligents afin d'utiliser les exceptions C ++.
  7. Toujours appeler le PropVariantClear fonction avant de réinitialiser ou de rejeter un objet PROPVARIANT.

Dépannage des fuites de mémoire sous Windows

Tout comme les différentes manières de prévenir les fuites de mémoire, il existe différentes manières de faire cesser les fuites de mémoire.

1] Fermer les processus et redémarrer.

Si vous voyez qu'un processus inutile prend trop de RAM, vous pouvez le terminer dans le gestionnaire de tâches. Vous devrez redémarrer le périphérique pour que l'espace libéré soit disponible pour une utilisation par d'autres processus. Sans un problème de fuite de mémoire avec redémarrage, le problème ne sera pas résolu. Runtime Broker est un processus particulier qui présente des bogues pour ralentir le PC. Essayez si la seule désactivation fonctionne.

2] Outils de diagnostic de la mémoire

Pour accéder à l'outil de diagnostic de mémoire intégré pour Windows:
Pour accéder à l'outil de diagnostic de mémoire intégré pour Windows:
  1. Enregistrez tout votre travail important.
  2. presse Win + R ouvrir le Courir la fenêtre.
  3. Tapez la commande mdsched.exe dans le Courir la fenêtre.
  4. Redémarrez le PC.
  5. Après un redémarrage, effectuez une analyse de base ou optez pour le Avancée"Options comme" Mélange de test' ou ' Nombre de passes ’.
  6. presse F10 pour commencer le test.

Ce sont encore des correctifs temporaires.

3] Vérifier les mises à jour du pilote

Les pilotes obsolètes provoquent des fuites de mémoire. Gardez tous les pilotes à jour:
Les pilotes obsolètes provoquent des fuites de mémoire. Gardez tous les pilotes à jour:
  1. presse Win + R et ouvrez le Courir la fenêtre. Type devmgmt.msc et appuyez sur Entrée. Cela vous mènera au Gestionnaire de périphériques.
  2. Recherchez les pilotes obsolètes et mettez-les tous à jour.
  3. Pour les mises à jour que vous avez peut-être manquées, vérifiez dans Windows Update.

C'était simple.

4] Optimiser les performances

Le réglage de Windows en fonction des performances gèrera tout, y compris la planification du processeur et l’utilisation de la mémoire, pour enrayer les fuites de mémoire. Suivez ces étapes:
Le réglage de Windows en fonction des performances gèrera tout, y compris la planification du processeur et l’utilisation de la mémoire, pour enrayer les fuites de mémoire. Suivez ces étapes:
  1. Cliquez avec le bouton droit sur ‘ Ce PC »Et sélectionnez« Avancée ’Paramètres dans le volet de gauche.
  2. Sous le ' Avancée"Onglet, allez à" Performance', suivi par ' Réglages ’.
  3. Vérifier ' Ajuster pour de meilleures performances'Et cliquez D'accord.
  4. Redémarrez et vérifiez si le problème est résolu.

Si cette solution simple ne fonctionne pas, essayez la solution suivante.

5] Désactiver les programmes en cours d'exécution au démarrage

Désactiver les programmes problématiques est le seul moyen de résoudre le problème des fuites de mémoire. Accédez au gestionnaire de tâches et désactivez le programme de résolution des problèmes. Si vous ne savez pas quels programmes créent le problème, procédez comme suit:
Désactiver les programmes problématiques est le seul moyen de résoudre le problème des fuites de mémoire. Accédez au gestionnaire de tâches et désactivez le programme de résolution des problèmes. Si vous ne savez pas quels programmes créent le problème, procédez comme suit:
  1. Aller à ' Gestionnaire des tâches ’.
  2. Aller à ' Commencez ’.
  3. Désactivez les programmes de démarrage que vous n'avez pas besoin d'exécuter par défaut.

6] Défragmentation du disque dur

Bien que Windows 10 le fasse automatiquement pour vous, vous devrez peut-être occasionnellement défragmenter les disques durs pour optimiser les performances:
Bien que Windows 10 le fasse automatiquement pour vous, vous devrez peut-être occasionnellement défragmenter les disques durs pour optimiser les performances:
  1. Aller à ' Ce PC' ou ' Mon ordinateur ’.
  2. Cliquez avec le bouton droit sur le disque dur du système (généralement le lecteur C:).
  3. Aller à ' Outils' sous ' Propriétés"Et sélectionnez" Optimiser ’.
  4. Sélectionnez le lecteur à défragmenter et sélectionnez ‘ Analyser ’.

Redémarrez votre ordinateur après la nouvelle fragmentation.

7] Fichier ClearPage à l’arrêt

Cela devient complexe maintenant - mais ne vous inquiétez pas. Voici comment effacer le fichier de page à chaque arrêt:

  1. Type regedit sur Rechercher pour lancer l'éditeur de registre.
  2. Entrez ce chemin: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerGestion de la mémoire
  3. Changer la valeur de ClearPageFileAtShutDown to '1'.
  4. Enregistrez les modifications et redémarrez l'appareil.

Cela devrait le faire.

9] Désactiver Superfetch

Ce service Windows optimise les performances en minimisant le temps de démarrage. Il permet à Windows de gérer l'utilisation de la RAM. La vie après la désactivation de Superfetch n’est pas pratique, mais faites-le si vous le devez. Au moins, essayez ceci seul pour isoler le problème:

  1. Chercher services.msc et allez au gestionnaire de services.
  2. Chercher ' Superfetch »Et cliquez dessus avec le bouton droit pour aller à« Propriétés ’.
  3. Sélectionnez ‘ Arrêtez ’.
  4. Également ' Désactiver ’Le service dans le menu déroulant.
  5. Redémarrez le PC et vérifiez si les performances se sont améliorées.

Activez Superfetch si celui-ci ne fonctionne pas.

10] Rechercher les logiciels malveillants

Utilisez un logiciel antivirus tiers ou Windows Defender intégré à Windows 10 pour analyser et éliminer les logiciels malveillants. Assurez-vous que l’antivirus est mis à jour pour prendre en charge votre système d’exploitation, afin qu’il ne devienne pas la cause de la fuite de mémoire.

Toutes les solutions dont vous pourriez avoir besoin pour rechercher ou éviter les fuites de mémoire se trouvent ici. Vous pouvez en savoir plus sur les fuites de mémoire sur MSDN et Microsoft.

Articles Similaires:

  • Correction des erreurs d'arrêt Windows ou de l'écran bleu de la mort
  • Pourquoi Windows affiche-t-il moins de RAM que celui installé?
  • Rendre Windows 10 démarrer, exécuter, arrêter plus rapidement
  • Limites de mémoire physique dans les fichiers de vidage sur incident pour Windows 10/8/7
  • Compression de mémoire dans Windows 10

Conseillé: