PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Traitement de code GPU | Tableau de bord
Traitement de code GPU | Tableau de bord
Débuté par Dytis, 06 déc. 2016 14:09 - 3 réponses
Membre enregistré
36 messages
Popularité : +1 (1 vote)
Posté le 06 décembre 2016 - 14:09
Bonjour à tous et merci d'avance !

Je suis en version 19.

Mon problème est que du traitement se répète à chaque "TDBAjouteWidget" et ce traitement est assez long...

Sur ma fenêtre principal j'ai un tableau de bord que je gère par programmation comme suit :

sListeGroupe est une chaîne = gpwRecupInfoUtilisateur(gpwInfoGroupe)
nIndice est un entier


//Test si c'est un Admin pour laisser le tdb entier
POUR TOUTE CHAINE sGroupe DE sListeGroupe SEPAREE PAR TAB
SI sGroupe = "Admin" ALORS
nIndice = TDBAjouteWidget(TDB_Principal,TDB_Direction_Generale,"DG")
TDBConfigurationInitiale(TDB_Principal,nIndice,1,1,1,1)
//6 widgets sont appelés de cette façon à la suite les uns des autres
RETOUR
FIN
FIN




Voici les traitements assez long qui se font à chaque "TDBAjouteWidget" :
GPU_nRecupIdUtilisateur
GPU_nRecupEtatElementUtilisateur
GPU_nRecupEtatElement
GPU_nRecupEtatDefaut
GPU_nCalculEtatDefautUtilisateur
GPU_bRecupEtatDefautDansFichier
...
...

J'ai épluché un peu le code de tous ces traitements et j'ai l'impression que c'est une sécurité...
Le traitement prend bien 5 à 10 secondes...
Avez vous une solution pour évité le traitement ou l’exécuté qu'une seule fois ?

Merci !!
Cordialement,

Thismail
Membre enregistré
36 messages
Popularité : +1 (1 vote)
Posté le 09 décembre 2016 - 12:08
Bonjour à tous,

J'ai réussi à réduire le nombre d'appels à 3, mais même ses appels prennent 3 à 4 secondes...

J'ai analysé les performances et effectivement c'est bien de là que ça vient. Je n'arrive pas à insérer la capture par contre...


Voici quelques lignes de l'analyse de performance,
(Par "Fonction","Temps interne" et "Nb Appels")


Procédure gtoba1e GPU_bRecupEt1to.fautDansF1chier 167 ms 14

Procédure globale GPU_bRecupEtatDerautDonsfichier 164 ms 14

Procédure globale GPU_nRecup 162 ms 14

Procédure globale GPU_bRecupElotDefoutDonsFichier 125 ms 14

Procédure globale GPU_bRecupEtolDefoutDansFlchier 122 ms 12

Procérure globale GPU_bR&upEtalDefeutDansFicttter 122 ms 12
...
...
...

Le soucis ne vient pas si le champ tableau de bord est pré configuré pour ces widgets mais j'ai besoin de les trier par groupes d'utilisateurs et je ne vois pas d'autres solution que par programmation....
J'ai retiré un TDBAffiche() qui faisait un appels de tous ces traitements, je commence à me dire que je devrait mettre 6 CFI et tous programmer mais bon... Si je peut éviter... ^^

Merci encore !
Membre enregistré
67 messages
Popularité : +1 (1 vote)
Posté le 13 septembre 2018 - 09:48
Bonjour Dytis,

je sais que ça fait un moment, mais avais-tu réussi à trouver la raison de ce problème et à solutionner le problème au final?

--
______________________________________
Vincent DUBREIL
Membre enregistré
36 messages
Popularité : +1 (1 vote)
Posté le 13 septembre 2018 - 10:54
Bonjour Monsieur Dubreil,

A l'heure actuel le logiciel est en fonction, j'ai apporté quelques modifications aux appels mais je suis obligé de purger un peu la base tous les six mois sinon il y a trop de traitement par appel de la procédure…

Si vous avez une solution je suis tout "ouïe" ! ;)

Merci,
Dytis