Maison  >  Article  >  Tutoriel système  >  Comment résoudre la fuite de mémoire Win11. Analyse des causes de la fuite de mémoire Win11 et diverses solutions.

Comment résoudre la fuite de mémoire Win11. Analyse des causes de la fuite de mémoire Win11 et diverses solutions.

PHPz
PHPzavant
2024-02-29 09:58:50756parcourir

L'éditeur PHP Xiaoxin analysera pour vous le problème de fuite de mémoire de Win11. Les fuites de mémoire peuvent être causées par diverses raisons, telles que des bogues de programme, des ressources non publiées, etc. Les solutions incluent la mise à jour des correctifs système, la fermeture des programmes pouvant provoquer des fuites de mémoire, l'utilisation d'outils de gestion de la mémoire, etc. En analysant les causes et en prenant des mesures efficaces, vous pouvez résoudre efficacement le problème de fuite de mémoire Win11 et améliorer les performances et la stabilité du système.

Causes des fuites de mémoire :

Les fuites de mémoire sont causées par un mauvais alignement des ressources dans un programme informatique en raison d'une allocation de mémoire incorrecte. Cela se produit lorsque les emplacements RAM inutilisés ne sont toujours pas libérés. Ne confondez pas les fuites de mémoire avec les fuites d'espace ou l'utilisation élevée de la mémoire, c'est-à-dire lorsqu'un programme utilise plus de RAM qu'il n'en a besoin. La fuite de mémoire sur les systèmes Windows 11/10/8/7 se produirait lorsque la mémoire est inutilisée mais inaccessible.

Pourquoi les fuites de mémoire sont mauvaises :

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

  • Cela provoque un épuisement de la mémoire puisque la mémoire n'est pas libérée même lorsqu'elle n'est pas utilisée.
  • Une mémoire épuisée fait vieillir les logiciels.
  • La mémoire disponible réduite entraîne une augmentation des temps de réponse et une réduction des performances du système.
  • Des fuites de mémoire non contrôlées peuvent éventuellement provoquer le crash de l'application.

Afin d'identifier les fuites de mémoire, les programmeurs doivent accéder au code source du programme.

Comment localiser les fuites de mémoire

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

  • Affirmation : Déterminez si une fuite s'est produite.
  • Rechercher les fuites de mémoire en mode noyau : localisez les fuites causées par les composants du pilote en mode noyau.
  • Trouver les fuites de mémoire en mode utilisateur : localisez les fuites causées par des pilotes ou des applications en mode utilisateur.

Comment se produit l'allocation de mémoire

Il existe différents modes permettant aux applications d'allouer de la RAM. Si l'espace n'est pas libéré après utilisation, une fuite de mémoire peut survenir quel que soit le mode d'allocation. Certains modèles d'allocation courants sont :

  • La fonction HealAlloc est utilisée pour l'allocation de mémoire de tas. Les équivalents d'exécution C/C++ sont malloc et new.
  • Fonction VirtualAlloc pour une allocation directe depuis le système d'exploitation.
  • API Kernel32 pour économiser la mémoire du noyau de l'application. Par exemple, CreateFile, CreateThread.
  • API User32 et API Gdi32.

Comment prévenir les fuites de mémoire dans Windows

Nous savons tous qu'il vaut mieux prévenir que guérir, il est donc très important de surveiller votre système.

Vous devez faire attention à savoir si divers programmes et applications utilisent anormalement la RAM. Vous pouvez accéder au Gestionnaire des tâches de Windows en appuyant sur CTRL+SHIFT+ESC et ajouter des colonnes pour les descripteurs, les objets utilisateur, les objets GDI, etc.

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

Outils Microsoft pour diagnostiquer les fuites de mémoire

Divers outils diagnostiquent les fuites de mémoire dans divers modèles d'allocation :

  • Application Verifier diagnostique les fuites de tas.
  • UMDH (un composant des outils de débogage pour Windows) analyse les fuites dans les processus individuels en surveillant les allocations de mémoire tas.
  • Trace Capture pour une analyse complète de l'utilisation de la RAM.
  • Xperf suit également les modèles d'allocation de tas.
  • CRT Debug Heap suit non seulement les allocations de tas, mais permet également aux pratiques de codage de minimiser les fuites.
  • Le détecteur de fuite de mémoire JavaScript débogue les fuites de mémoire dans votre code.

Conseils d'utilisation

  • Utilisez le HANDLE du noyau et d'autres pointeurs intelligents pour l'allocation des ressources et du tas Win32.
  • Obtenez des classes de gestion automatique des ressources pour l'allocation du noyau à partir de la bibliothèque ATL. La norme C++ a auto_ptr pour l'allocation du tas.
  • Encapsulez le pointeur de l'interface COM dans un "pointeur intelligent" à l'aide de _com_ptr_t ou _bstr_t ou _variant_t.
  • Surveillez votre code .NET pour détecter une utilisation inhabituelle de la mémoire.
  • Évitez plusieurs chemins de sortie des fonctions pour que les allocations soient libérées des variables dans la plupart des blocs à la fin de la fonction.
  • Utilisez les exceptions natives uniquement après avoir libéré toutes les allocations dans le bloc _finally. Enveloppez tous les tas et gérez les allocations dans des pointeurs intelligents à utiliser avec les exceptions C++.
  • Appelez toujours la fonction PropVariantClear avant de réinitialiser ou de supprimer un objet PROPVARIANT.

Comment réparer les fuites de mémoire dans Windows 11/10

Tout comme les différentes façons d'éviter les fuites de mémoire, il existe également différentes façons d'arrêter les fuites de mémoire. Mais avant de commencer, pensez à créer d’abord un point de restauration système.

1] Fermez le processus et redémarrez

Si vous voyez un processus inutile occupant trop de RAM, vous pouvez terminer le processus dans le Gestionnaire des tâches. Vous devrez redémarrer l'appareil pour que l'espace libéré puisse être utilisé par d'autres processus. Le problème de fuite de mémoire ne sera pas résolu sans redémarrage. Runtime Broker est un processus connu pour ralentir votre PC. Voyez si la désactivation de cela seul fonctionne.

2] Outil de diagnostic de la mémoire

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

  • Enregistrez tout votre travail important.
  • Appuyez sur Win + R pour ouvrir la fenêtre Exécuter.
  • Tapez la commande mdsched.exe dans la fenêtre Exécuter.
  • Redémarrez votre ordinateur.
  • Après le redémarrage, effectuez une analyse de base ou sélectionnez les options « avancées » telles que « Combinaison de tests » ou « Nombre de passes ».
  • Appuyez sur F10 pour commencer les tests.

Ce sont encore des correctifs temporaires.

3] Vérifiez les mises à jour des pilotes

Les pilotes obsolètes peuvent provoquer des fuites de mémoire. Gardez tous les pilotes à jour. Suivez l'une des méthodes suivantes pour mettre à jour les pilotes de votre périphérique :

  • Vous pouvez rechercher des mises à jour de pilotes via les mises à jour facultatives de Windows pour mettre à jour vos pilotes
  • Vous pouvez visiter le site Web du fabricant pour télécharger le pilote.
  • Utilisez un logiciel gratuit de mise à jour des pilotes
  • Si vous avez déjà le fichier du pilote INF sur votre ordinateur :
    • Ouvrez le Gestionnaire de périphériques.
    • Cliquez sur la catégorie du pilote pour développer le menu.
    • Sélectionnez ensuite le pilote concerné et faites un clic droit dessus.
    • Choisissez de mettre à jour le pilote.
    • Suivez l'assistant à l'écran pour terminer la mise à jour du pilote audio.

La mise à jour de votre système d'exploitation, des programmes installés et des applications du Microsoft Store peut également être utile.

4] Optimiser les performances

Ajuster les performances de Windows permettra de tout gérer, 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 sur "Ce PC" et sélectionnez les paramètres "Avancés" dans le volet de gauche.
  • Sous l'onglet Avancé, accédez à Performances, puis Paramètres.
  • Cochez « Ajuster pour obtenir les meilleures performances » et cliquez sur « OK ».
  • Redémarrez et vérifiez si le problème est résolu.

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

5] Désactivez les programmes qui s'exécutent au démarrage

La désactivation des programmes problématiques est le seul moyen de se débarrasser des problèmes de fuite de mémoire. Accédez au Gestionnaire des tâches et désactivez le programme problématique. Si vous ne savez pas quel programme est à l'origine du problème, procédez comme suit :

  • Accédez au Gestionnaire des tâches.
  • Allez dans Démarrage.
  • Désactivez les programmes de démarrage dont l'exécution n'est pas requise par défaut.

6] Défragmentez votre disque dur

Bien que Windows 11/10 le fasse automatiquement pour vous, vous devrez peut-être défragmenter votre disque dur de temps en temps pour optimiser les performances :

  • Allez sur Ce PC ou « mon ordinateur ».
  • Cliquez avec le bouton droit sur le disque dur de votre système (généralement le lecteur C:).
  • Allez dans « Outils » sous « Propriétés » et sélectionnez « Optimiser ».
  • Sélectionnez le lecteur que vous souhaitez défragmenter et sélectionnez « Analyser ».

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

7] Effacer le fichier de page à l'arrêt

Cela devient de plus en plus compliqué ces jours-ci, mais ne vous inquiétez pas. Voici comment effacer le fichier d'échange à chaque arrêt :

  • Tapez regedit dans la recherche pour lancer l'éditeur de registre.
  • Entrez ce chemin :
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager内存管理
  • Changez la valeur de ClearPageFileAtShutDown en "1".
  • Enregistrez les modifications et redémarrez votre appareil.

Cela devrait être fait. Gardez à l’esprit que votre processus d’arrêt prendra plus de temps.

9]Désactivez Super Fetch

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 avec Superfetch désactivé n'est pas pratique, mais faites-le si vous le devez. Essayez au moins ceci seul pour isoler le problème :

  • Recherchez services.msc et accédez au Gestionnaire de services.
  • Recherchez « Superfetch » et faites un clic droit dessus pour accéder à « Propriétés ».
  • Sélectionnez "Arrêter".
  • Le service peut également être "désactivé" depuis le menu déroulant.
  • Redémarrez votre PC et vérifiez si les performances s'améliorent.

Si cela ne fonctionne pas, activez Superfetch.

10] Recherchez les logiciels malveillants

Utilisez un logiciel antivirus tiers ou Microsoft Defender fourni avec Windows pour analyser et supprimer les logiciels malveillants. Assurez-vous de mettre à jour votre logiciel antivirus pour prendre en charge votre système d'exploitation afin qu'il ne devienne pas la cause de fuites de mémoire.

11] Modifier les paramètres

1. Cliquez sur "Démarrer" dans la barre des tâches dans le coin inférieur gauche et saisissez "Panneau de configuration" dans le champ de recherche ci-dessus pour l'ouvrir.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

2. Après être entré dans la nouvelle interface, basculez « Afficher par » dans le coin supérieur droit sur « Grandes icônes », puis cliquez sur « Options d'alimentation ».

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

3. Cliquez ensuite sur "Choisir l'action des boutons d'alimentation" dans la colonne de gauche.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

4. Cliquez ensuite sur "Modifier les paramètres actuellement indisponibles" ci-dessus.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

5. Enfin, recherchez « Activer le démarrage rapide », décochez la petite case et cliquez sur Enregistrer les modifications.

win11内存泄露如何解决 win11内存泄露原因分析和多种解决办法

12] Modifier les paramètres

1. Il peut également s'agir d'une fuite de mémoire provoquée par le pilote de la carte graphique.

2. Vous pouvez choisir l'ancienne version du pilote sur le site officiel d'Intel pour la télécharger et l'installer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer