IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Lenteur sur des procédures simples


Sujet :

WinDev

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Lenteur sur des procédures simples
    Bonjour,

    J'ai un truc "bizarre" à vous soumettre.

    J'ai une fenêtre qui ressemble à ça :
    Nom : 2015-02-18_201648.png
Affichages : 413
Taille : 10,2 Ko

    Un truc on ne peut plus basic.
    La table est alimentée par un fichier de données.
    Et les informations visibles sous la table, se mettent à la sélection d'une ligne de la table.
    Autrement, c'est de l'ultra léger cette affaire.

    Et pourtant, quand je sélectionne une ligne de la table, les informations ce mettent bien à jour mais cela prend tu temps !?
    C'est rapide quand même, évidement. Mais vu l'ampleur de la tâche, ça devrait être instantané. Et bien non, on voit le défilement des champs qui se mettent à jour les uns après les autres et à l'oeil nu.

    Le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    // Traitement automatique des erreurs : RENVOYER 
     
    PROCEDURE AfficheInfoClient(pnIDClient)
     
    //On vérifie si la table n'est pas vide
    SI TableOccurrence(TABLE_CLIent) = 0 ALORS
    	LIB_NOM = "Aucun client n'est sélectionné"
    	LIB_ADR = "Adresse : ....."
    	LIB_TEL = "Tél : ....."
    	LIB_MOBILE = "Portable : ....."
    	LIEN_EMAIL = "Email : ....."
     
    	RETOUR
    FIN
     
    //Recherche des données concernant le client sélectionné
    HLitRecherche(CLIent,IDCLIent,pnIDClient)
     
    //Si le client est introuvable, on sort de la procedure
    SI HTrouve()=Faux ALORS
    	RETOUR
    FIN
     
    //Le client est trouvé, on met a jour les informations
    SI CLIent.CLI_Civilite = "" ALORS LIB_NOM = CLIent.CLI_Prénom+" "+CLIent.CLI_Nom SINON LIB_NOM = CLIent.CLI_Civilite+" "+CLIent.CLI_Prénom+" "+CLIent.CLI_Nom
    LIB_ADR = "Adresse : "+CLIent.CLI_Adresse+RC+CLIent.CLI_CP+" "+CLIent.CLI_Ville
    LIB_TEL = "Tél : "+CLIent.CLI_Tel_Fixe
    LIB_MOBILE = "Portable: " +CLIent.CLI_Tel_Mobile
    LIEN_EMAIL..Libellé = CLIent.CLI_Mail
    SI LIEN_EMAIL..Libellé = "" ALORS LIB_NOM1 = ""  SINON LIB_NOM1 = "Email : "
    Je suis un PC de bon niveau donc les ressource matérielles ne sont pas en cause à priori.
    Je me dis que c'est probablement mon code qui est mauvais mais à ce point...

    Bon, voilà, si quelqu’un à une explication ou une solution.

    Merci d'avance
    Les solutions les plus simples sont les plus efficaces

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut,

    Fichier>Projet> Analyseur de performances ?

    En + j'aurais opté pour un HLitrecherchePremier()

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bonjour, petite question votre procédure est elle exécutée en amont par un ThreadExecute ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Bonjour,

    Quelle type de base attaquez-vous ? si c'est autre chose que de l'HF je vous invite à passer par des instructions SQL plutôt que des HLitRecherche...

    Et effectivement tatayo a raison, un petite analyse des perfs vous donnera certainement des indications intéressantes !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Citation Envoyé par michel.souris Voir le message
    Bonjour,

    Et effectivement tatayo a raison, un petite analyse des perfs vous donnera certainement des indications intéressantes !
    Même si c'est la première chose qui m'a traversé l'esprit, je ne suis pas encore intervenu dans la discussion...

    Tatayo.

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Il fallait lire "zouzoukha"...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Analyseau de performance
    J'ai un peu adapté mon code (j'ai notamment remplacé par le HLitRecherche par un HLitRecherchePremier qui est effectivement plus adapté, merci zouzoukha).
    Je suis suis sur une base HF

    Je viens de tester l'analyseur mais j’avoue que j'ai un peu de mal à interpréter les résultats.
    Autrement dit, je ne vois toujours pas où est le problème.
    Les solutions les plus simples sont les plus efficaces

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Minela
    J'aurais tendance à répondre non à la question du TreadExecute mais j'avoue ne pas maîtriser cette notion.
    Que pouvez vous me conseiller par rapport à cela svp ?
    Les solutions les plus simples sont les plus efficaces

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    J'ai changé de méthode.

    J'ai établi la liaison entre les champ d'info et les rubriques du fichier de donnée et je fais la mise à jour par un fichierversecran

    Et bien devinez quoi ? Ca ne change rien, c'est toujours aussi lent. Étonnant non ?
    Les solutions les plus simples sont les plus efficaces

  10. #10
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut
    et si tu remplis la table par programmation juste pour voir?

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Citation Envoyé par lololebricoleur Voir le message
    J'ai un peu adapté mon code (j'ai notamment remplacé par le HLitRecherche par un HLitRecherchePremier qui est effectivement plus adapté, merci zouzoukha).
    Je suis suis sur une base HF

    Je viens de tester l'analyseur mais j’avoue que j'ai un peu de mal à interpréter les résultats.
    Autrement dit, je ne vois toujours pas où est le problème.
    L'analyseur de performance te permet de connaître le temps passé dans chaque procédure, "presque" chaque ligne de code.
    Donc il "suffit" de regarder dans le détail ce qui prend le plus de temps dans ton traitement.
    Si tu n'y arrives pas tu peux nous poster une copie d'écran de l'analyseur.

    Tatayo.

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Merci de ton aide tatayo mais de quel partie de l'analyseur tu as besoin en copie d'écran pour me donner on avis stp ?
    Je vois que l'analyseur propose d'enregistrer. Je suppose que c'est pour produire une espèce de rapport non ?
    Ca peut t'être utile ça ?

    Merci
    Les solutions les plus simples sont les plus efficaces

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Je ne sais pas si WinDev peut ouvrir un rapport sans avoir le projet en question.
    Je n'ai plus le nom exacte des onglets en tête, mais tu peux commencer par le deuxième (celui avec les cases): la taille des cases est proportionnelle au temps passé dans le traitement correspondant.
    Le dernier onglet te donne le détail des procédures/fonctions et autre commandes WinDev, ainsi que le nombre d'appels et le temps total utilisé.
    Tu peux ainsi savoir précisément ce qui prend le plus de temps dans ton code.

    Tatayo.

  14. #14
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut!

    Voici une vidéo que je viens de faire rapidement sur l'analyseur de performances.
    A toute fin utile...

    https://vid.me/HfXF

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci zouzoukha
    Y'a pas de son sur ta vidéo, normal ?
    Les solutions les plus simples sont les plus efficaces

  16. #16
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 998
    Points : 2 524
    Points
    2 524
    Par défaut
    Citation Envoyé par lololebricoleur Voir le message
    Y'a pas de son sur ta vidéo, normal ?
    Pourquoi veux-tu qu'il ait mis du son ?

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Pour faire causer les muet
    Les solutions les plus simples sont les plus efficaces

  18. #18
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Drôle de question serendib !?...
    Bref.

    Je remercie encore une fois zouzoukha pour sa vidéo
    Zouzouckha, j'ai bien compris comment mettre en œuvre l'analyseur mais c'est l'interprétation des résultats qui me pose problème.
    Et puis cela me donne une indication concernant le temps d’exécution si j'ai bien compris mais je ne sais pas quoi en faire.

    Merci ZOUZOUKHA
    Les solutions les plus simples sont les plus efficaces

  19. #19
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    J'ai fais un test en repiquant les infos dans la table, même problème.
    J'ai une autre appli qui utilise le même principe mais je n'ai pas le problème.
    La mise à jour des info est instantanée !?

    Il peut pas y avoir une histoire de Tread ou un truc du genre ?
    Les solutions les plus simples sont les plus efficaces

  20. #20
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Nom : 2015-02-22_135252.png
Affichages : 274
Taille : 28,3 Ko

    Il semble que le problème vienne juste de la mise à jour des valeurs.
    Mais comment faire autrement pour faire mieux !?
    Les solutions les plus simples sont les plus efficaces

Discussions similaires

  1. Optimiser temps de traitement sur des requêtes simples
    Par yoyo88 dans le forum Langage SQL
    Réponses: 21
    Dernier message: 20/02/2015, 12h35
  2. lenteur sur un script simple
    Par syntaxerror dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/06/2010, 19h43
  3. [SQL-Server] requête sur des procédures stockées
    Par babap1 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/07/2007, 13h23
  4. Réponses: 10
    Dernier message: 02/07/2007, 19h09
  5. Réponses: 4
    Dernier message: 19/02/2006, 18h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo