DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV 2024 !
Aide / Tuto WINDEV / Tuto - Optimiser un projet
  • Leçon 1 - Audits du projet
  • Présentation
  • Qu'est-ce qu'un audit ?
  • Audit statique
  • Optimisation 1 : Champ Table (UI)
  • Optimisation 2 : Procédure non exécutée
  • Optimisation 3 : Elément orphelin
  • Optimisation 4 : Nettoyage du projet
  • Audit dynamique
  • Conclusion

Tuto - Optimiser un projet

Leçon 1 - Audits du projet
Ce que vous allez apprendre :
  • Qu'est-ce qu'un audit et à quoi ça sert ?
  • Lancer et analyser l'audit statique.
  • Lancer et analyser l'audit dynamique.
Durée de la leçon 15 mn
Présentation
WINDEV met à votre disposition plusieurs outils permettant d'optimiser une application. Vous pouvez ainsi améliorer les performances de votre application et éviter les "bugs" grossiers avant de déployer votre application chez vos clients.
Ce tuto présente l'utilisation de plusieurs de ces outils.
Dans cette première leçon nous verrons comment utiliser les différents audits mis à votre disposition et dans la leçon suivante, nous verrons comment utiliser l'analyseur de performances.
Pour mieux manipuler ces fonctionnalités, nous avons préparé un projet à optimiser !
Qu'est-ce qu'un audit ?
Les audits apportent une série de fonctionnalités permettant :
  • d'améliorer automatiquement la qualité et les performances d'un projet.
  • de suivre plus précisément ses conditions de mise en exploitation.
Deux types d'audits sont disponibles :
  • L'audit statique. L'audit statique consiste en une analyse détaillée d'un projet et de ses éléments. Cet audit est effectué directement depuis l'éditeur de projet.
  • L'audit dynamique. L'audit dynamique est une analyse du comportement d'un projet pendant son exécution. Cet audit peut être réalisé en mode test ou directement dans l'environnement de production.
Nous allons tout de suite tester ces audits sur le projet "WD Optimisation".
Ouverture du projet
Ce tuto manipule le projet "WD Optimisation". Pour ouvrir cet exemple :
  1. Affichez la page d'accueil de WINDEV (Ctrl + <).
  2. Dans la page d'accueil, cliquez sur "Tutoriel" puis dans la zone "Tuto - Optimiser un projet", double-cliquez sur "Optimiser un projet".
Avertissement
Cet exemple sera utilisé dans les différentes leçons de ce tuto.
Audit statique
L'audit statique est une fonctionnalité de l'environnement permettant d'analyser les sources d'un projet pour détecter différents problèmes et proposer des améliorations.
Pour lancer l'audit statique sur le projet "WD Optimisation" :
  1. Sous le volet "Projet", dans le groupe "Audit et performances", déroulez "Audit statique" et sélectionnez "Déclencher l'audit statique".
  2. L'assistant se lance. Nous allons définir la cible de l'audit statique.
    Audit statique
  3. Sélectionnez l'option "Lancer l'audit statique sur le projet complet".
  4. Terminez l'assistant.
  5. Le rapport d'audit est affiché :
    Rapport d'audit
L'audit statique se compose :
  • du rapport d'audit (que nous allons voir en détail).
  • de l'analyse de la bibliothèque de l'application.
  • de l'analyse du pack d'installation de l'application.
Pour plus de détails, consultez Audit statique.
Examinons avec attention les points présentés par ce rapport.

Optimisation 1 : Champ Table (UI)

Dans notre projet, l'audit nous indique qu'un champ Table utilise le mode 'loupe' pour la recherche. Ce mode permet une recherche de type 'Commence par'. L'audit conseille d'utiliser par défaut un filtre de type 'Contient' pour la recherche, beaucoup plus courant et utile pour les utilisateurs.
Pour traiter ce problème :
  1. Cliquez sur le bouton [...] pour obtenir plus de renseignements. La fenêtre listant les améliorations de l'UI est affichée.
    Améliorations de l'UI
  2. Dans la fenêtre "FEN_FenêtreInutilisée", le champ "TABLE_Produit" peut être amélioré. Cette fenêtre permet de :
    • effectuer l'amélioration (bouton "Améliorer"). Dans ce cas, l'amélioration est immédiatement effectuée.
    • ignorer l'amélioration (bouton "Ignorer"). Dans ce cas, l'amélioration ne sera plus proposée.
  3. Dans notre exemple, nous allons effectuer ce changement. Cliquez sur "Améliorer".
  4. Pour appliquer toutes les améliorations choisies (1 seule dans notre exemple), cliquez sur "Appliquer les opérations".
Dans la fenêtre de l'audit statique, cliquez sur le bouton "Rafraîchir" pour mettre à jour le rapport d'audit.

Optimisation 2 : Procédure non exécutée

Dans notre projet, l'audit nous indique qu'une procédure n'est jamais exécutée. Ce cas arrive fréquemment : une procédure a été créée pour réaliser un traitement, puis suite à une réorganisation du code, la procédure n'est plus utilisée mais reste dans le projet.
La présence de procédures non utilisées alourdit inutilement les ressources distribuées aux utilisateurs finaux.
Pour traiter ce problème :
  1. Cliquez sur le bouton [...] pour obtenir plus de renseignements. La fenêtre listant les codes morts apparaît.
    Procédure non exécutée - Code mort
  2. La procédure "ProcédureObsolète" n'est jamais appelée. Cette fenêtre permet de :
    • spécifier que la procédure est tout de même utilisée (bouton "Marquer comme utile"). Dans ce cas, la procédure ne sera plus prise en compte lors de l'audit.
    • supprimer la procédure si elle est réellement inutilisée (bouton "Supprimer").
    • voir la procédure (bouton "Voir").
    • rechercher les cas d'utilisation dans les chaînes par exemple (bouton "Rechercher").
  3. Dans notre cas, cette procédure est réellement inutilisée, cliquez sur "Supprimer".
  4. Une fenêtre s'affiche demandant la confirmation de la suppression. Confirmez la suppression en cliquant sur le bouton "Supprimer".
  5. Fermez la fenêtre du code mort (utilisez la croix en haut à droite).
Dans la fenêtre de l'audit statique, cliquez sur le bouton "Rafraîchir" pour mettre à jour le rapport d'audit.

Optimisation 3 : Elément orphelin

L'audit nous indique que notre projet contient un élément orphelin. Ce cas est également très fréquent : il arrive souvent de créer des fenêtres, des états afin d'effectuer un test rapide, de les enregistrer et de les oublier.
La présence d'éléments orphelins dans l'exécutable alourdit inutilement les ressources distribuées aux utilisateurs finaux.
Pour traiter ce problème :
  1. Cliquez sur le bouton [...] pour obtenir plus de renseignements. La fenêtre listant les éléments orphelins apparaît.
    Elément orphelin
  2. La fenêtre "FEN_FenêtreInutilisée" n'est jamais appelée. La fenêtre listant les éléments orphelins permet de :
    • spécifier que l'élément est tout de même utilisé (bouton "Marquer comme utile"). Dans ce cas, la fenêtre de notre exemple ne sera plus prise en compte lors de l'audit. Cette option peut être intéressante par exemple dans le cas d'une fenêtre de test spécifique au développement.
    • supprimer l'élément s'il est réellement inutilisé (bouton "Supprimer").
    • voir l'élément (bouton "Voir").
    • rechercher les cas d'utilisation dans les chaînes par exemple (bouton "Rechercher").
  3. Dans notre cas, cette fenêtre "FEN_FenêtreInutilisée" est réellement inutilisée, cliquez sur "Supprimer".
  4. Fermez la fenêtre des éléments orphelins (utilisez la croix en haut à droite).
Dans la fenêtre de l'audit statique, cliquez sur le bouton "Rafraîchir" pour mettre à jour le rapport d'audit.

Optimisation 4 : Nettoyage du projet

Notre projet exemple contient plusieurs fichiers inutilisés. Il est possible de nettoyer le projet pour ne conserver que les éléments nécessaires. Ainsi, l'exécutable et l'installation client ne sont pas alourdis avec des images, fichiers externes (ou autres) non utilisés.
Pour traiter ce problème :
  1. Cliquez sur le bouton [...] pour obtenir plus de renseignements.
  2. L'assistant de nettoyage de projet se lance. Cet assistant indique les fichiers inutilisés qui peuvent être supprimés.
  3. Passez à l'étape suivante.
  4. Indiquez le type de nettoyage à réaliser. Il est possible de :
    • créer un fichier zip avec les fichiers inutiles.
    • déplacer les fichiers inutiles dans un répertoire spécifique.
  5. Validez l'option proposée par défaut et passez à l'étape suivante.
  6. Terminez l'assistant.
Nous avons optimisé notre projet en suivant tous les conseils de l'audit statique.
L'audit statique permet d'avoir un état général sur les sources de votre projet. Lancez-le régulièrement !
Maintenant, voyons ce qui se passe en exécution en lançant l'audit dynamique.
Audit dynamique
L'audit dynamique permet d'analyser l'exécution de l'application. L'audit permettra de déceler des problèmes tels que :
  • Consommation excessive de mémoire,
  • Lenteurs des algorithmes utilisés,
  • Erreurs "masquées" lors de l'exécution,
  • etc.
Un audit dynamique peut être effectué dans un environnement de test ou sur une application en production.
Le projet "WD Optimisation" contient une fenêtre spécifique provoquant des erreurs pouvant être détectées par l'audit dynamique.
Nous allons lancer l'audit dynamique en même temps que le test du projet.
Pour lancer l'audit dynamique sur le projet "WD Optimisation" :
  1. Sous le volet "Projet", dans le groupe "Mode test", déroulez "Mode test" et sélectionnez "Déboguer le projet avec l'audit activé". Le test du projet se lance.
  2. Cliquez sur le bouton "Fenêtre de test de l'audit dynamique".
  3. Cliquez sur les différents boutons présents dans la fenêtre. A la fin de chaque traitement, un message sous forme de toast est affiché pour indiquer que le traitement est terminé. Pour l'option "Assertion et Exception", une assertion est affichée : cliquez sur "Continuer" pour voir apparaître le message sous forme de toast.
  4. Arrêtez le test de l'application.
  5. La fenêtre de compte-rendu de l'audit dynamique s'affiche.
Examinons cette fenêtre :
Compte-rendu de l'audit dynamique
  • La partie haute de cette fenêtre permet de choisir le mode d'affichage des données. Il est possible de :
    • choisir un affichage chronologique (respectant l'ordre d'arrivée des événements) ou un affichage synthétique, permettant de regrouper les différents types de problèmes. Dans ce cas, la frise chronologique permet de voir la position et l'importance des problèmes.
    • choisir le type de problème à afficher (erreur, assertion, etc.). Il est ainsi par exemple possible de se concentrer uniquement sur les erreurs graves, etc.
  • La partie basse de cette fenêtre affiche les différents événements survenus pouvant poser problème dans l'application.
Dans cet exemple, l'audit dynamique détecte plusieurs problèmes :
  • Un libellé trop long affecté par programmation,
  • Une boucle de type SELON dont aucun CAS n'est exécuté,
  • Une assertion déclenchée au lieu d'une exception,
  • L'ouverture d'un fichier qui n'existe pas,
  • L'affectation d'un fichier image qui n'existe pas à un champ Image. Pour chaque problème, un bouton "..." permet d'accéder au détail de l'événement enregistré. Si l'événement est relié à une ligne de code particulière, le bouton permet d'ouvrir directement l'éditeur de code à l'emplacement correspondant afin de corriger le problème.
Avertissement
Cette leçon présentant uniquement le fonctionnement de l'audit dynamique, nous ne corrigerons pas toutes les erreurs détectées.
Fermez la fenêtre de l'audit dynamique.
Conclusion
L'audit statique et l'audit dynamique sont des outils importants, vous permettant de comprendre rapidement les problèmes ou ralentissements de votre application.
Ces deux outils sont également directement accessible via le tableau de bord de votre projet.
La leçon suivante va nous permettre d'utiliser un outil complémentaire : l'analyseur de performances.
Pour aller plus loin : L'audit dynamique d'un projet peut également être effectué lorsqu'une application est déployée sur les postes clients. Il est possible :
  • soit de modifier l'application et d'utiliser la fonction dbgActiveAudit pour lancer l'audit.
  • soit d'utiliser un fichier texte dans le répertoire de l'application. Cette solution permet de ne pas modifier l'exécutable.
Pour plus de détails, consultez Audit dynamique.
SommaireLeçon suivante
Version minimum requise
  • Version 2024
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 16/11/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale