PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → 9900 lignes a afficher= 2 minutes 30 secondes
9900 lignes a afficher= 2 minutes 30 secondes
Débuté par medow, 19 mai 2005 14:37 - 14 réponses
Posté le 19 mai 2005 - 14:37
En faisant hlitpremier et hlitsuivant sur un fichier HF avec tableajouteligne je mets avec un IPAQ 2210 HP 400MHZ et 250MB de memoire flash SD card standard venant de HP exactement 2 minutes 30 secondes pour afficher 9900 lignes dans une table memoire avec 2 rubriques dont une est l'index automatique numerique et l'autre le texte.
Si quelqu'un a une idee de genie pour accelerer le processus:

je donne quelques idees qui me sont venus par exemple

1. changer d'IPAQ?
2. changer la memoire flash par un disque dur meme externe?
3. utiliser lite oracle?
4. autre solution?

Je remercie d'avance le developpeur qui apportera sa contribution eclairee a ce probleme de vitesse.
Posté le 19 mai 2005 - 16:08
Salut,
Et si à la place tu utilises une requete du style
SELECT champ1, champ2 from fichier

et que tu fait ta boucle hlitpremier/hlitsuivant sur la requete est-ce
on gagne en vitesse?
Normalement l'accès au fichier physique ne se ferait qu'une seule fois
....

Essaie et dis nous ce que ca donne.
La requete tu peux même la créer par l'editeur de requetes de windev.

A+

--
Bon développement à tous
Christian
Posté le 19 mai 2005 - 16:17
Je ne sais pas quels résultats cela donne avec windev mobile mais avec
windev "standard" ca permet
de gagner du temps...
tu peux utiliser l'instruction "pour tout" au lieu de faire des hlitxxx et
faire un matable..affichageactif = faux
matable..affichageactif = vrai avant et apres ton traitement...

mais le plus efficace serait certainement de limiter le nombre de lignes par
une astuce dans
l'interface qui impose de limiter l'affichage ? mais ce n'est pas toujours
possible... :(

sinon par expérience en VC++ si tu peux mettre tes fichiers de données dans
la ram (s'ils ne sont pas
trop gros... et avec tous les inconvévients que cela comporte...) en général
le gain par rapport à
une carte mémoire est significatif.

bon courage !
Eric L

"braun" <medow@inter.net.il> a écrit dans le message de
news:428c6051$1@news.pcsoft.fr...

En faisant hlitpremier et hlitsuivant sur un fichier HF avec

tableajouteligne je mets avec un IPAQ 2210 HP 400MHZ et 250MB de memoire
flash SD card standard venant de HP exactement 2 minutes 30 secondes pour
afficher 9900 lignes dans une table memoire avec 2 rubriques dont une est
l'index automatique numerique et l'autre le texte.
Si quelqu'un a une idee de genie pour accelerer le processus:

je donne quelques idees qui me sont venus par exemple

1. changer d'IPAQ?
2. changer la memoire flash par un disque dur meme externe?
3. utiliser lite oracle?
4. autre solution?

Je remercie d'avance le developpeur qui apportera sa contribution eclairee

a ce probleme de vitesse.
>
Posté le 19 mai 2005 - 16:34
5 Créer une table fichier avec parcours automatique. Seuls les enregistrements affichés sont lus.
Posté le 19 mai 2005 - 17:08
Je pense que cela peut etre une bonne solution si ca marche, je vais essayer et te tenir au courant.
Posté le 19 mai 2005 - 17:10
J'ai essaye le pocket se bloque sur une table fichier aussi importante.
Posté le 19 mai 2005 - 17:11
J'ai fait un essai avec requete c'est pratiquement la meme chose.
Posté le 19 mai 2005 - 17:12
Mais comment avec Windev mettre dans la RAM. J'ai beau regarde dans l'aide il n'y a pas de fonction pour cela apparemment.
Posté le 19 mai 2005 - 19:09
Bonjour,

Les tests que je ferais encore c'est :
- Mettre la table mémoire en invisible, puis la remplir, puis la remettre en visible.
- Autre chemin à voir : Remplir la table mémoire par un thread. L'utilisateur peut commencer à bosser sur les premiers pendant le remplissage de la fin se fait en parallèle.

A+
Posté le 19 mai 2005 - 19:16
si c'est pour faire une requete et la mettre dans une table mémoire le plus
rapide
est d'utiliser fichierverstablememoire... !

Eric L.

"braun" <medow@inter.net.il> a écrit dans le message de
news:428c848d@news.pcsoft.fr...

J'ai fait un essai avec requete c'est pratiquement la meme chose.


Posté le 19 mai 2005 - 19:17
je me suis mal exprimé
quand je dis "ram" je veux dire "mémoire" du pocket
ou si tu préfères "ne pas mettre les fichiers de données sur une carte de
stockage"

tu n'as pas un gain notable avec l'utilistion de "pour tour" ?

"braun" <medow@inter.net.il> a écrit dans le message de
news:428c84ce$1@news.pcsoft.fr...

Mais comment avec Windev mettre dans la RAM. J'ai beau regarde dans l'aide

il n'y a pas de fonction pour cela apparemment.


Posté le 19 mai 2005 - 19:37
ya pas une "histoire" dans windows comme quoi seule le premier thread
d'une application peut accéder au GDI ?
et d'une manière générale, il faut envoyer des messages windows à la fenetre
concernée pour intérargir avec elle (ce qui n'est pas vraiment adapté dans
ce cas)

Eric L.

"ATGD" <atgd@free.fr> a écrit dans le message de
news:428ca013$1@news.pcsoft.fr...

Bonjour,

Les tests que je ferais encore c'est :
- Mettre la table mémoire en invisible, puis la remplir, puis la remettre

en visible.
> - Autre chemin à voir : Remplir la table mémoire par un thread.
L'utilisateur peut commencer à bosser sur les premiers pendant le
remplissage de la fin se fait en parallèle.

A+
Posté le 19 mai 2005 - 20:19
La meilleure solution est le remplissage de la table par un thread, cela semble selon les premiers etre quelques choses de fantastique.

AVEC TOUS MES REMERCIEMENTS: ON DOIT UTILISER LE THREAD SUR POCKET++++++++
Posté le 19 mai 2005 - 20:21
Je vais tester

Merci
Posté le 20 mai 2005 - 02:20
En faisant des threadexecute proteges par des ThreadArrete, on a un tres bon resultat.
En testant on a lors de l'affichage de 9900 lignes, des la premiere seconde la possibilite de manipuler la table et d'afficher ce qu'on veut en cliquant sur une ligne de table.
J'ai fait des testes pour des recherches avec filtre avec des resultats de 250 lignes sans aucun probleme. Je pense que pour de grosses application l'utilisation du thread donne un bon resultat sur Pocket PC, en fait c'est la seule solution en attendant d'avoir des Pocket PC equipes de processeurs plus puissants.