Rechercher des fuites de mémoire avec l’Analyseur de performances (PerfMon)

Si les performances de Windows se dégradent au fil du temps et que vous soupçonnez qu’une fuite de mémoire peut être impliquée, utilisez l’Analyseur de performances Windows (PerfMon) pour examiner les fuites de mémoire possibles. Vous pouvez surveiller les changements de données en mémoire au fil du temps pour différents aspects de votre application ou programme. L’outil n’identifie pas la source d’une fuite ou confirme la présence d’un problème en mode utilisateur ou en mode noyau. Vous pouvez ajuster les paramètres dans l’outil pour vous aider à localiser le problème.

Ouvrez Performance Monitor avec l’une des procédures suivantes :

  • In Windows Search, enter perfmon (or Performance Monitor), and select the tool.

  • Use the Windows Key + R keyboard shortcut to open the Run command dialog. Enter perfmon and select OK.

Ajouter des compteurs de données

Ajoutez des compteurs de mémoire et de fichier de page au graphe principal de l’Analyseur de performances afin de pouvoir surveiller les modifications de données. Under Monitoring Tools, right-click Performance Monitor and select Properties. In the Properties dialog >Data tab, add the following counters:

  • Memory>Pool Nonpaged Bytes

  • Memory>Pool Paged Bytes

  • Paging File>% Usage

Définir la durée pour capturer suffisamment d’activités

Ajustez les paramètres de temps généraux afin de pouvoir capturer un graphique des fuites de données au fil du temps. In the Properties dialog >General tab, configure the following values:

  • Sample every: Set the time to 600 seconds, which measures the value every 10 minutes.

  • Duration: Set the time to capture enough activity. For example, to monitor the data over 24 hours, set the value to 86400 (60 x 60 x 24 = 86,400).

Tip

Consignez les données du graphique dans un fichier pour un examen ultérieur.

Démarrer l’application et surveiller les données

Après avoir configuré les compteurs et les paramètres de temps, démarrez l’application ou le programme de test que vous souhaitez vérifier pour les fuites. Autorisez le programme à s’exécuter sans perturbation pendant un certain temps.

Important

N’utilisez pas l’ordinateur cible pendant que vous exécutez le programme pour vérifier les fuites. Les fuites se développent généralement lentement. Il peut prendre des heures pour qu’une fuite de données s’accumule à un niveau détectable.

Regardez les compteurs de l’Analyseur de performances. Lorsque vous commencez à surveiller, les valeurs de compteur changent rapidement. Il peut prendre du temps pour que les valeurs des pools de mémoire atteignent un état stable. Attendez plusieurs heures avant de décider qu’il y a une fuite.

Examiner les fuites en mode utilisateur

User-mode memory leaks are always located in pageable pool. This type of leak causes the Memory>Pool Paged Bytes counter and the Paging File>Usage counter to increase steadily over time. Pour plus d’informations, consultez Rechercher des fuites de mémoire en mode utilisateur avec PerfMon.

Examiner les fuites en mode noyau

Kernel-mode memory leaks usually deplete nonpaged pool. This type of leak causes the Memory>Pool Nonpaged Bytes counter to increase and potentially, pageable memory. Parfois, les compteurs en mode noyau peuvent afficher des faux positifs, car une application met en cache des données.