IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment rendre une recherche sur SortedList(Of) parallele


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Points : 57
    Points
    57
    Par défaut Comment rendre une recherche sur SortedList(Of) parallele
    Bonjour

    J'ai une class nommée Toponyme avec deux propriétés sNom et sCode déclarée en String.
    J'ai une liste des ces Toponymes déclarée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Communes As SortedList(Of String,Toponyme)
    qui contient plus de 33000 items.

    Pour effectuer des recherches j'ai le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Dim i As Integer = Communes.IndexOfValue((From oCom As Toponyme In Communes.Values
                                                                    Where oCom.sCode = .sCode _
                                                                         And oCom.sNom = .sNom).FirstOrDefault)
                    If i >= 0 Then
                        oTo = Communes.ElementAt(i).Value
                        Return True
                    Else
                        Return False
                    End If
    Celle-ci fonctionne correctement mais je dois faire cette même demande sur d'autres propriétés et le nombre d'items étant élevé le temps de calcul est très élevé.

    Il y a t il un moyen de rendre cette procédure parallèle?
    J'ai vu que cela existait pour les boucles For et For Each mais ne sais si cela s'applique ici.
    Merci
    Bernard

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Il existe des listes spécialisée pour les opérations de calcul parallèle.

    Après Est-ce qu'il y a moyen de faire plus propre et optimiser que votre exemple, dont j'ai pas forcément compris la finalité, sans passer par ce type de solution...

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Peut-être qu'en optimisant un peu car dans votre code, on trouve une requête et un accès par index avec ElementAt (A priori et sauf erreur de ma part lorsque lorsque la liste n'implémente pas l'interface IList ElementAt fait une itération en boucle pour accéder à l'élément et donc n'est pas optimisé)

    Est-ce que une recherche linq directe ne serait pas plus optimisée et éviterai de vous lancer dans le parallélisme (traduit de C# donc...):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim oTo As Toponyme = Communes.Where(Function(t) (t.Value.sCode = ...) AndAlso (t.Value.sNom = ...)).FirstOrDefault().Value
    Return (result IsNot Nothing)

Discussions similaires

  1. [1.x] Comment faire une recherche sur plusieurs tables
    Par farhaenis dans le forum Symfony
    Réponses: 6
    Dernier message: 01/07/2011, 17h47
  2. Comment faire une recherche sur la base de donnée entière
    Par -Fly- dans le forum Sql Developer
    Réponses: 2
    Dernier message: 27/05/2011, 15h07
  3. Réponses: 1
    Dernier message: 26/05/2010, 17h57
  4. Réponses: 3
    Dernier message: 11/10/2008, 13h32
  5. Comment faire une recherche sur un contenu s'il existe ou non ?
    Par 21247692 dans le forum Bases de données
    Réponses: 8
    Dernier message: 05/04/2008, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo