Bureau

Recherche et correction des fuites de mémoire dans Windows 10/8/7

Résoudre Les Problèmes de Ports USB et Périphériques USB (Solution 2)(Win 10, 8.1, 8, 7 and Vista)

Résoudre Les Problèmes de Ports USB et Périphériques USB (Solution 2)(Win 10, 8.1, 8, 7 and Vista)

Table des matières:

Anonim

Une perte de mémoire est une erreur de placement de ressource dans un programme informatique en raison d`une mauvaise allocation de mémoire. Cela arrive quand un emplacement RAM non utilisé reste inédit. Une fuite de mémoire ne doit pas être confondue avec une fuite d`espace, qui se réfère à un programme utilisant plus de RAM que nécessaire. On dit qu`une fuite de mémoire sur un système Windows 10/8/7 a eu lieu quand la mémoire n`est tout simplement pas accessible, même si elle n`est pas utilisée

Fuites de mémoire dans Windows 10

Avant de commencer, vous devriez savoir que La fuite de mémoire est un problème de 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 nécessaire.

Pourquoi est-il mauvais

la fuite est mauvaise car c`est un bug, une faille dans le système. Mais voyons exactement comment cela affecte le système:

  1. Comme la mémoire n`est pas libérée même lorsqu`elle n`est pas utilisée, elle entraîne un épuisement de la mémoire
  2. l`épuisement de la mémoire entraîne le vieillissement du logiciel
  3. Réduction de la mémoire disponible
  4. Une faille de mémoire non contrôlée peut éventuellement entraîner le crash d`une application

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

Localisation de la fuite

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

  1. Affirmation : Déterminer si une fuite s`est produite
  2. Trouver une fuite de mémoire en mode noyau : Localisation d`une fuite provoquée par un composant pilote en mode noyau.
  3. Recherche de fuite de mémoire en mode utilisateur : Localisation d`une fuite causée par le pilote ou l`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 communs sont:

  1. Fonction HealAlloc pour l`allocation de mémoire de tas. Les équivalents d`exécution C / C ++ sont malloc et new.
  2. Fonction VirtualAlloc pour l`allocation 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évention des fuites de mémoire

Nous savons tous qu`il vaut mieux prévenir que guérir: voici quelques moyens de prévenir les fuites de mémoire

> Vous devez garder un œil sur l`utilisation anormale de RAM par des programmes et des applications individuels. Vous pouvez accéder au Gestionnaire des tâches Windows en appuyant sur

CTRL + MAJ + ÉCHAP et ajouter les colonnes comme Poignées, Objets utilisateur, Objets GDI, etc. Cela vous aidera à surveiller facilement l`utilisation des ressources.

Outils pour diagnostiquer les fuites de mémoire

Divers outils diagnostiquent les fuites de mémoire pour divers modes d`allocation:

Application Verifier diagnostique les fuites de mémoire

  1. UMDH (un composant de Windows Debugging Tools) diagnostique des fuites pour des processus individuels
  2. Trace Capture pour une analyse approfondie de l`utilisation de la RAM.
  3. Xperf suit aussi les modèles d`allocation de tas.
  4. Le CRT Debug Heap permet non seulement de suivre les allocations de tas mais aussi de minimiser les fuites. Detector débogue les fuites de mémoire dans les codes
  5. Conseils d`utilisation
  6. Utilisez kernel

HANDLE

  1. et autres pointeurs intelligents pour les ressources Win32 et les allocations de tas. Obtenez des classes pour la gestion automatique des ressources la bibliothèque ATL. La norme C ++ a auto_ptr
  2. pour les allocations de tas Encapsule les pointeurs d`interface COM dans les "pointeurs intelligents" à l`aide de _com_ptr_t
  3. ou _bstr_t ou _variant_t . Surveiller le code.NET pour une utilisation anormale de la mémoire Éviter les multiples chemins de sortie pour les fonctions permettant de libérer les allocations des variables dans la plupart des blocs à la fin d`une fonction. après avoir libéré toutes les allocations dans le bloc _finally. Enveloppez toutes les allocations de tas et de poignées dans des pointeurs intelligents afin d`utiliser les exceptions C ++.
  4. Appelez toujours la fonction
  5. PropVariantClear
  6. avant de réinitialiser ou de supprimer un objet PROPVARIANT
  7. Dépannage des fuites de mémoire dans Windows Tout comme les différentes méthodes de prévention des fuites de mémoire, il existe différentes manières d`arrêter les fuites de mémoire. 1] Fermer les processus et redémarrer

Si vous constatez qu`un processus inutile occupe trop de RAM, vous pouvez terminer le processus dans le Gestionnaire des tâches. Vous devrez redémarrer le périphérique afin que l`espace libéré soit disponible pour d`autres processus. Sans un problème de fuite de mémoire Restart ne sera pas résolu. Un processus particulier qui a des bogues pour ralentir le PC est Runtime Broker. Essayez de désactiver cela seul.

2] Outils de diagnostic de la mémoire

Pour accéder à l`outil de diagnostic de mémoire intégré pour Windows:

Enregistrez tout votre travail important

Appuyez sur

Win + R

  1. pour ouvrir la fenêtre
  2. ExécuterTapez la commande mdsched.exe dans la fenêtre
  3. Exécuter . Redémarrez le PC. Après redémarrez, effectuez une analyse de base ou optez pour les options Avancées
  4. `comme`
  5. Mélange test `ou` Passez nombre `. Appuyez sur F10 pour lancer le test.
  6. Ce sont toujours des correctifs temporaires. 3] Vérifier les mises à jour du pilote Les pilotes obsolètes provoquent des fuites de mémoire. Mettez tous les pilotes à jour:

Appuyez sur

Win + R

et ouvrez la fenêtre

  1. Run . Tapez devmgmt.msc et appuyez sur Entrée. Il vous mènera au Gestionnaire de périphériques . Vérifiez les pilotes obsolètes et mettez-les à jour Pour les mises à jour que vous avez peut-être manqué, vérifiez Windows Update. c`était simple.
  2. 4] Optimiser les performances
  3. l`ajustement de Windows pour les performances gérera tout, y compris la planification du processeur et l`utilisation de la mémoire pour arrêter les fuites de mémoire. Suivez ces étapes:

Cliquez avec le bouton droit de la souris sur

Ce PC

`et sélectionnez les paramètres

  1. Avancés dans le volet de gauche. Sous le Avancé `onglet, accédez à`
  2. Performances `, suivi de` Paramètres `. Cochez` Réglez les meilleures performances `et cliquez sur
  3. OK . 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 exécutés au démarrage
  4. Désactiver les programmes problématiques la seule façon de se débarrasser du problème de fuite de mémoire. Aller à Gestionnaire des tâches et désactiver le programme de trouble. Si vous ne savez pas quels programmes sont à l`origine du problème, procédez comme suit:

Allez dans

Gestionnaire des tâches

`.

  1. Passez à` Démarrage `.
  2. Désactivez les programmes de démarrage que vous n`avez pas besoin d`exécuter par défaut 6] Defrag Hard Drive Bien que Windows 10 le fasse automatiquement pour vous, vous devrez parfois défragmenter les disques durs pour optimiser les performances:
  3. Allez à `

Ce PC

` ou `

  1. Poste de travail `. Cliquez avec le bouton droit sur le disque dur du système (généralement C: lecteur). Passez à ` > Outils
  2. `sous`
  3. Propriétés `et sélectionnez` Optimiser `. Sélectionnez le lecteur à défragmenter et sélectionnez` Analyser `.
  4. Redémarrez votre ordinateur après la nouvelle fragmentation. 7] ClearPage File at shutdown Ça devient complexe maintenant - mais ne vous inquiétez pas. Voici comment effacer le fichier de page à chaque arrêt:

Tapez

regedit

sur Rechercher pour lancer l`éditeur de registre

  1. Entrez ce chemin: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management Changez la valeur de
  2. ClearPageFileAtShutDown à `1`. Enregistrer les modifications et redémarrer l`appareil
  3. Cela doit être fait. 9] Désactiver Superfetch
  4. Ce service Windows optimise les performances en réduisant 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. Essayez au moins cela pour isoler le problème:

Recherchez

services.msc

et allez dans le Gestionnaire des services

  1. Recherchez ` Superfetch ` et faites un clic droit pour aller à `
  2. Propriétés `. Sélectionnez ` Arrêter `.
  3. Également ` Désactiver ` le service dans le menu déroulant.
  4. Redémarrez le PC et vérifiez si la performance s`est améliorée. Activez Superfetch si celui-ci ne fonctionne pas. 10] Rechercher les logiciels malveillants
  5. Utilisez un logiciel antivirus tiers ou Windows Defender 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 trouver ou empêcher les fuites de mémoire sont ici. Vous pouvez en savoir plus sur les fuites de mémoire sur MSDN et Microsoft.