[R] Conseils pour accélérer affichage ListView

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#21

Message par jchd »

Bon, je me tempère quand même : le moteur peut être un autre SGBDR type MySQL et l'interface du web ; c'est ce qu'utilisent nombre de programmes de généalogie.

Cependant SQLite reste considérablement plus facile à mettre en oeuvre et permettra un export vers tout SGBDR avec peu d'efforts si le besoin s'en fait sentir.

Je ne suis pas si sectaire qu'on pourrait le croire !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#22

Message par mikell »

Pour l'erreur
C:\Program Files (x86)\AutoIt3\Include\SQLite.au3(2,13) : ERROR: missing separator character after keyword.
#IgnoreFunc __SQLite_Inline_Version
~~~~~~~~~~~~^
Tu as bien commenté la ligne du fichier qui est dans l'include ?
Sinon essaie d'installer la plus récente version d'autoit
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#23

Message par aulus »

@jchd : Si SQLIite fait l'affaire, je n'irai pas voir ailleurs !

@Mikell :

J'utilise AutoIt 3.3.8.1
Je me rends compte que si je lance genea.au3 via "exécuter" de SCiTe, j'obtiens l'erreur.

Si je le lance directement via AutoIt3, je n'obtiens plus l'erreur, mais... le tableau est vide !

Je précise :
- j'ai installé SQLite.dll.au3 et SQLite.au3 dans le dossier Include.
- J'ai installé genea.au3 et genea.sqlite dans le dossier de mes programmes, différent du précédent.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#24

Message par mikell »

C'est le pire des cas, quand ça marche chez moi mais pas chez toi :mrgreen:
Essaie ce script
► Afficher le texte
en mettant bien à côté le dernier fichier texte que tu m'as envoyé que tu renommes en "genea.txt"
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#25

Message par aulus »

Voici le compte-rendu d'expérience :

- j'ai placé mon fichier texte dans le même dossier que le nouveau genea.au3 que vous me proposez
- je l'ai renommé "genea.txt"
- le programme genea.au3 fonctionne sans erreur aussi bien dans SCITe que directement avec AutoIt.exe.

Mais...

- le SplashText "Création de la base" s'affiche
- le SplashText "Chargement" ne s'affiche pas
- le tableau s'affiche vide
- le fichier "genea1.sqlite" sensé être créé par le programme n'apparaît pas dans le dossier.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#26

Message par mikell »

J'ai un doute, tu peux tester ce script ?
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#27

Message par aulus »

J'obtiens l'erreur :
SQLite3.dll can't be Loaded
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#28

Message par mikell »

OK, vérifie que tu as bien sqlite3.dll dans le systemdir
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#29

Message par aulus »

Qu'appelez-vous le systemdir ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#30

Message par mikell »

Le @systemdir d'autoit, sur mon XP c'est C:\windows\system32 , là où kya toutes les dll "sensibles" :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#31

Message par aulus »

Non, pas de sqlite3.dll dans le system32
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#32

Message par aulus »

Voilà, tout est en ordre... ça marche !

Alors, la construction de la table est très longue.
L'affichage de la table une fois celle-ci créée prend 3 à 4 secondes.
Le tri sur une colonne prend 10 secondes.

C'est sûr que ça va plus vite que la lecture et le tri d'un fichier texte. Il me faudra plancher là-dessus. Je vais étudier avec soin votre code pour bien le comprendre.

Grand grand grand merci !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#33

Message par mikell »

Dernière version (plus complète)
ça aura fait un bon exercice :mrgreen:
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#34

Message par aulus »

Pas de changements dans les temps de chargement et d'affichage.
J'ai découvert et bien apprécié la possibilité d'ouvrir une fiche en double-cliquant sur une ligne de la liste.
Tout ça me plaît bien.
Vous avez mérité un bon week-end reposant !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#35

Message par mikell »

Et dis-toi qu'on n'a fait que survoler les possibilités...
Le temps d'affichage c'est à cause de la listview, on peut pas le faire plus vite
Si tu mets un timer sur juste le tri de la bdd tu verras que le temps de traitement est < 1 sec

Pas génial ce w-e, là il pleut bien c'est en partie pour ça que tu as eu le script si vite :mrgreen:
Bon WE quand même !
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#36

Message par jchd »

Loin de moi l'idée de critiquer le boulot qu'a promptement réalisé Mikell. Que ça soit clair, il mérite un coup de chapeau.

Ceci dit je n'ai pas pu m'empêcher de laisser traîner un oeil et il m'est venu quelques remarques que je crois importantes sur la partie bdd.

Je ne me lance pas dans un trop long discours, j'ai mis mes conseils en commentaires dans le script, où je n'ai rien changé.
► Afficher le texte
Ah oui, il est bon de travailler avec le handle de la connexion à la bdd, plutôt qu'avec -1. Pourquoi ? Parce que si un jour on a besoin de travailler en parallèle avec une autre base (ou plusieurs), par exemple faire des bidouilles super rapides avec une bdd en mémoire (ou plusieurs), on risquera de se mélanger les crayons avec les handles et les -1. Ce moment peut arriver plus vite qu'on ne croit !

Morale : récupérer les handles à chaque _SQLite_Open et les utiliser explicitement.

Il faudrait certainement créer à terme un ou plusieurs index sur les colonnes les plus courament utilisées pour les tris. par contre, ce ne sera à faire que lorsque le schéma sera apuré et stabilisé et seulement si l'expérience en démontre l'utilité. Sinon on obtiendra l'inverse de l'effet escompté : un ralentissement global (ou "comment se tirer dans le pied").

Je ne suis pas généalogiste, mais je me demande comment on peut éviter de grossières erreurs sans mettre en place un moyen fiable de gérer les contemporains homonymes. Ce schéma demande réflexion.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#37

Message par aulus »

Oui,j'admire le travail de Mikell et la rapidité avec laquelle il code. Et je lui suis très reconnaissant de sa disponibilité.

Jchd, je vous remercie de l'attention que vous portez à la question posée. Vos conseils, que je ne comprends pas encore, me seront d'une grande utilité quand je maîtriserai un peu SQLite, si jamais je le maîtrise un jour ! :D
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#38

Message par mikell »

Bon voilà le même avec quelques modifications selon les instructions de jchd
Au niveau de la vitesse d'affichage l'amélioration est plus que sensible, ya pas photo
En plus la nouvelle bdd fait 40 Ko de moins ^^
► Afficher le texte
Ce qui m'agace un peu c'est que "SELECT id || '|' || date ... " est très efficace mais pas moyen de trouver une explication de cette syntaxe dans la doc habituelle trouvé. "||" = "concatenate"
Sinon pour définir les types de données je sais pas ce qui doit figurer dans la plupart des colonnes
Et mettre des ids aux parents dépend des fonctionnalités souhaitées du script, sans compter qu'il faut apprendre d'abord à utiliser des FK :mrgreen:

NB : il pleut de plus en plus ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#39

Message par aulus »

Oui, l'affichage est plus rapide... jusqu'où ira le progrès ? :D

Me mettre à SQLite me semble inévitable... Et tout récrire mon programme aussi... Moi qui croyais toucher au but tout prochainement... :(

Merci Mikell pour le travail et jchd pour les bonnes infos... et vive le mauvais temps !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Conseils pour accélérer affichage ListView

#40

Message par mikell »

... comme dirait Brassens :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre