13 septembre 2011
publié par 
Les phases d'optimisation et de mise au point des applications WINDEV sont simplifiées à l'extrême grâce aux outils inclus en standard :
  • l'analyseur de performances disponible en développement et dans les applications déployées permet de connaître immédiatement les traitements sur lesquels porter une attention.
  • l'audit statique permet de maitriser parfaitement le contenu d'une application, de son pack d'installation.
  • enfin l'audit dynamique permet durant l'exécution d'avoir un rapport très détaillé sur la mémoire utilisée, les déclenchements du mécanisme de sécurité du WLangage qui n'auraient pas été testés par le développeur...

Mais il devient plus délicat de rechercher des optimisations, ou de déterminer l'origine d'un comportement inattendu, lorsque l'une de vos applications est dépendante d'un autre processus dont vous n'avez pas la maîtrise.

Un utilitaire "ProcMon" de la gamme "Windows Sysinternals" est alors très pratique, car il permet de suivre l'activité d'un processus quelconque et notamment ses entrées/sorties disque et réseau. Cela permet de rapidement repérer des échecs d'accès à des données, de communications, des ralentissement ...

Sur le même principe que l'analyse de trames décrite dans un billet précédent, voici les bases nécessaires pour démarrer simplement avec "ProcMon" (installation standard par assistant).

Au premier lancement il est intéressant d'ignorer la fenêtre "Process Monitor Filter" afin d'avoir une vue d'ensemble de l'utilitaire. Cela permet de se rendre compte des entrées / sorties constantes des applications lancées, et surtout de voir qu'il est en l'état impossible d'entreprendre un quelconque débogage !

La première action à effectuer consiste donc à filtrer la surveillance afin qu'elle ne s'applique qu'à une application :
  • menu "Tools ... Process Tree" (Ctrl+T),
  • sélectionner l'application dans la liste ("Mon_Projet.exe" dans l'image),
  • boutons "include process" puis "Close".

 

Un filtre est alors mis en place afin que les entrées/sorties affichées soient uniquement celles de l'application sélectionnée. Le menu "Filter" permet à tout moment de modifier les filtres, par exemple pour suivre les échanges entre plusieurs processus.

Il suffit maintenant d'effectuer dans l'application les opérations pour lesquelles un mauvais comportement est suspecté, pour voir en détail ce qu'il se passe au niveau système. Dans la copie d'écran suivante, on voit que l'application "Mon_Projet" a tenté de lire un fichier inexistant :

 

 

Le menu "Filter ... Highlight" est également à connaître, car il permet de mettre en évidence des lignes de captures qui correspondent à une opération donnée (sélection des actions puis clic sur "Add"), ou un résultat donné. Voici un exemple montrant la mise en évidence des connexions réseau, et les éventuels échecs de lecture :


Pour terminer ce tour d'horizon de l'utilitaire, il est bon de connaître :
  • les principaux raccourcis :
    • Ctrl+X afin de vider la trace,
    • Ctrl+A pour activer le mode "Auto Scroll" et avoir le défilement constant,
    • Ctrl+T pour accéder à la liste des processus,
    • Ctrl+H pour gérer les lignes mises en évidence.
  • le menu "Tools ... Files summary" qui permet d'avoir une synthèse classée par extension ou dossier les différents fichiers utilisés lors de l'exécution. Il n'est pas rare par ce moyen dans ses propres applications de trouver un fichier oublié que l'on ne pensait plus utiliser !
Mise à jour 28/5/2019
L'utilitaire Procmon peut également être "accroché" à un exécutable lancé en service. Très utile en cas de doute sur l'emplacement de dépendances utilisées par un service lorsqu'il démarre.

< Retour

© 2019 PC SOFT. Tous droits réservés. Réalisé  avec WEBDEV