Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1030 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB .NET] Optimisation de grosses boucles...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB .NET] Optimisation de grosses boucles...

n°622869
Corbier
Barbe's powaaa
Posté le 27-01-2004 à 15:19:10  profilanswer
 

Bonjours à tous !
 
Alors là je suis un peu perdu... Voici mon problème :
 
J'ai une application VB .NET qui doit parcourir l'ensemble d'un dictionnaire stocké dans une base de données Access.
Bon tout va bien lorsque ce dico comporte 200-300 termes. Mais lorsque ça dépasse les 1000 arrrrrgggg !
 
Explications :
- Mon application lit un document ligne par ligne.
- Vient alors une boucle parcourant un tableau contenant la BD ds sa totalité (chargée dans ce tableau au préalable...).
- A chaque passage ds la boucle, une fonction teste si le terme du dico en cours est présent dans la ligne du document actuellement testée et ainsi de suite...
 
Un document peut contenir 10000 voire 20000 enregistrements et le dico peut aussi dépasser les 10000 enregistrements.
J'ai essayé avec une hashtable, mais ce n'est pas vraiment plus rapide...
A titre indicatif, avec un document de 3000 enregistrements et un dico de 10000 enregistrements, ça prend 10min...
 
Si vous avez des id qui me permettraient d'optimiser ça, merci bcp... En espérant que cela ne remette pas toute mon architecture en cause  :(  
 
 


---------------
Sans ma barbe, quelle barbe !
mood
Publicité
Posté le 27-01-2004 à 15:19:10  profilanswer
 

n°622879
Taz
bisounours-codeur
Posté le 27-01-2004 à 15:25:56  profilanswer
 

une table de hachage pas rapide ?

n°622880
Mr yvele
yvele n'est plus.
Posté le 27-01-2004 à 15:26:25  profilanswer
 

ben :
 
utiliser C# et optimiser avec les pointeurs.. [:sinclaire]
 
(PS: salut corbier :hello: )


---------------
yvele n'est plus.
n°622886
Corbier
Barbe's powaaa
Posté le 27-01-2004 à 15:29:09  profilanswer
 

>Taz   je parcours tous les éléments de ma table de hachage avec un for each et je teste à chaque fois la valeur... Avec les clés ce serait sûrement plus rapide, mais ds mon cas, c pas possible
 
>Mr yvele   salut à toi  :hello: et pas de C#, mon Visual Studio contient que VB .NET  :na:


---------------
Sans ma barbe, quelle barbe !
n°622892
Taz
bisounours-codeur
Posté le 27-01-2004 à 15:31:52  profilanswer
 

va revois ton algo

n°624012
MagicBuzz
Posté le 28-01-2004 à 16:52:28  profilanswer
 

Juste comme ça, questions idiotes, mais on sait jamais :
 
1) Le type string en .NET est limité à combien ? Le document entier ne tient pas dans une seule chaîne ? (plutôt que lire ligne par ligne ce qui me semble être source de lenteur pour un fichier relativement petit - en dessous de 2 Mo, de toute façon le fichier est intégralement chargé en cache, donc autant le lire d'un coup)
2) La méthode .inStr() ou je sais plus quoi. Ca donne quoi comme perfs sur une chaîne de grande taille ? Etant une fonction de la lib de base, je pencherais pour des perfs "remarquables".
 
Ainsi, sans passer par un algo complexe, tu devrais avoir avec ça une solution simple pour tester rapidement...
 
Sinon, t'as essayé de charger ton document dans un tableau trié par ordre alphabétique ? Un peu plus long à l'initialisation, mais ensuite tu ne parcours qu'une seule fois chacun des deux tableaux en //, et tu n'as plus à traîter de grandes chaînes, juste à comparer l'égalité entre des chaînes de même longueur... Je pense que ça devrait te permettre d'obtenir d'excellentes perfs, y compris sur des dicos de 500 000 mots et des fichiers de 2 000 000 de mots. (moins de 10 minutes pour de tels fichiers en tout cas...)
Le seul souci de cette méthode, c'est que pour de gros fichiers (plus de 10 Mo) il faut le découper en petits tableau et les charger en plusieurs fois, sinon tu vas saturer la mémoire à vitesse grand V.


Message édité par MagicBuzz le 28-01-2004 à 16:54:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB .NET] Optimisation de grosses boucles...

 

Sujets relatifs
optimisation a la compilationLogiciel grand public fait en .NET? vous en connaissez?
[PostgreSQL] problème d'optimisation insertionvisual studio .NET.... combien de CDs ?
Meilleure solution pour se connecter à MySQL avec C# .NETInstallation .NET OracleClient OCI
migration en .NetMFC et .NET
svp je voudrais avoir des exercices sur les boucles en pascal merci.Optimisation de gestion de fichier
Plus de sujets relatifs à : [VB .NET] Optimisation de grosses boucles...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR