|
| Iniciado por Sauveur CONSALVI, 13,abr. 2020 16:10 - 8 respuestas |
| |
| | | |
|
| |
Miembro registrado 402 mensajes |
|
| Publicado el 13,abril 2020 - 16:10 |
Bonjour, Je n'arrive à comprendre pourquoi une telle différence dans l’exécution de la boucle ! Voici le code Je prend l'heure début et fin à l'intérieur, donc c'est vraiment le temps mis parla boucle
hDed est une Heure JAUGE_Jauge..Visible =Vrai JAUGE_Jauge..BorneMin = 0 JAUGE_Jauge..BorneMax =HNbEnr(tabVille) TableSupprimeTout(TABLE_Libellé) HLitPremier(tabVille,CodePostal) TANTQUE PAS HEnDehors(tabVille)
TableAjoute(TABLE_Libellé,tabVille.CodePostal+RC+tabVille.Ville) HLitSuivant(tabVille,CodePostal) FIN hFin est un Heure hDuree est une Durée = hFin-hDed Info(hDuree..EnMillisecondes) Quand je lance la fenêtre, le temps est de 5 834 milliseconde Quand je la ré exécute après un traitement, elle met 93 630 milliseconde !
Comment explique cela ?
-- Cordialement SC |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 13,abril 2020 - 18:03 |
Bonjour vous devriez tester en faisant un audit dynamique de façon à localiser l'endroit où ça bloque https://doc.pcsoft.fr/fr-FR/?1014502&name=Audit_dynamique
-- « L'erreur ne devient pas vérité parce qu'elle se propage et se multiplie ; la vérité ne devient pas erreur parce que nul ne la voit. » Gandhi |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 334 mensajes |
|
| Publicado el 13,abril 2020 - 20:23 |
Je pense qu’a la second passe, c’est le TABLESUPPRIMETOUT qui bouffe ta boucle, par contre pour optimiser la routine tu devrais désactiver le rafraîchissement de la table avant, et la réactiver aprés.
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 402 mensajes |
|
| Publicado el 14,abril 2020 - 08:10 |
Bonjour, Mais un grand merci pour le conseil de l'analyseur de performance J'ai remplacé
TableAjoute par
TableAjouteLigne Maintenant les temps d'exécution sont pratiquement identique 5 912 et 5 917 Cordialement SC
-- Cordialement SC |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 42 mensajes |
|
| Publicado el 14,abril 2020 - 10:44 |
Bonjour, Comme le conseille Dergen, il faut faire avant le début de la boucle Table_libelle..affichageactif=faux mais aussi Table_libelle..visible=faux
hDed est une Heure JAUGE_Jauge..Visible = Vrai JAUGE_Jauge..BorneMin = 0 JAUGE_Jauge..BorneMax = HNbEnr(tabVille)
TABLE_Libellé..AffichageActif =Faux TABLE_Libellé..visible =Faux
TableSupprimeTout(TABLE_Libellé) HLitPremier(tabVille,CodePostal) TANTQUE PAS HEnDehors(tabVille) TableAjoute(TABLE_Libellé,tabVille.CodePostal+RC+tabVille.Ville) HLitSuivant(tabVille,CodePostal) FIN
TABLE_Libellé..AffichageActif = Vrai TABLE_Libellé..visible = Vrai
hFin est un Heure hDuree est une Durée = hFin-hDed Info(hDuree..EnMillisecondes)
Pour moi cela a réduit significativement les temps d'affichage des tables remplies par programmation. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 402 mensajes |
|
| Publicado el 14,abril 2020 - 13:46 |
Bonjour, Désolé je n'avait pas bien compris les conseils de Dergen ... Avec la présentation du code c'est bien plus parlant J'ai testé avant de modifier Premier passage 7640 ré affichage 7689 Avec les modifications conseillées, 7030 puis 6971 Encore merci
-- Cordialement SC |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 334 mensajes |
|
| Publicado el 15,abril 2020 - 10:42 |
Tu pourra is peut-être encore optimiser le chargement de ta table en utilisant une vue matérialisé : https://doc.pcsoft.fr/fr-FR/?9000159
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 402 mensajes |
|
| Publicado el 15,abril 2020 - 11:55 |
OK, merci
-- Cordialement SC |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 402 mensajes |
|
| Publicado el 16,abril 2020 - 09:12 |
Bonjour, Je revient vers vous car en approfondissant mes tests, je constate une augmentation des temps au bout de plusieurs utilisations successives Après des recherches, je constate que c'est le fait de déclarer une colonne MultiLigne !
J'ai enlevé cette option, et concaténé mes rubriques non pas avec un RC entre elles, mais avec " - "
C'est spectaculaire,! Les temps de traitements varie maintenant entre 3098 et 3795 ....
-- Cordialement SC |
| |
| |
| | | |
|
| | | | |
| | |
|