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

Algorithmes et structures de données Discussion :

Besoin de conseils Algo et performances


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 1
    Par défaut Besoin de conseils Algo et performances
    Bonjour à tous,

    Pourriez-vous svp me donner vos avis sur la problématique suivante :


    J’ai un traitement qui :

    - prend une liste de plusieurs centaine de milliers d’occurrences
    - les écrits dans une table de travail
    - compare ces occurrences aux données d’une table
    - si données égale -> supprime la ligne de la table de travail


    Ce traitement met plus de 20 heures à tourner (1.6 seconde par enreg. actuellement) .

    Etant fonctionnelle (vous savez celle qui vous embête au boulot et ne sais pas coder ) et n’ayant malheureusement pas d’appui technique je me retourne vers vous.

    Imcompétente en code mais pas bornée j'aimerais essayer d'avancer malgré tout, pourriez-vous me donner des pistes algorithmiques pour améliorer les performances ?

    Merci beaucoup d’avance.


    Julie.

  2. #2
    Membre expérimenté Avatar de Acrim
    Profil pro
    En recherche d'emploi
    Inscrit en
    Septembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Septembre 2010
    Messages : 134
    Par défaut
    Bonjour,

    Tu peux déjà essayer d'évaluer le cout de chacune des étapes de ton traitement pour trouver la plus couteuse (après le fait qu'une étape soit plus couteuse ne veut pas forcement dire qu'elle a un défaut).

    Quelques questions qui pourront te donner des pistes :

    - Quel est la structure de ta table de travail ?
    - Est ce que les E/S sont correctement gérés ?
    - Comment sont comparés les éléments ?
    - Les éléments sont ils ordonnés ?
    - Et il possible de rajouter un index ?
    - Peut on paralléliser le traitement ?

    En espérant que cela pourra t'inspirer.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Acrim Voir le message
    Tu peux déjà essayer d'évaluer le cout de chacune des étapes de ton traitement pour trouver la plus couteuse (après le fait qu'une étape soit plus couteuse ne veut pas forcement dire qu'elle a un défaut).


    C'est la première des choses à faire : voir si il y a un goulot d'étranglement.

    Ensuite, d'une part comment est faite la recherche d''une occurence dans la table, d'autre part comment est faite la suppression/ré-écriture..

    Enfin, est-il possible d'avoir la table en mémoire, ou est-on obligé de le faire ligne à ligne ?


    Cette décision ci-dessus peut modifier de beaucoup la répidité du traitement..

    Par exemple,si on peut avoir toute la table en mémoire, quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    noccurence = 0
    pour j = 0 jusqu'à j = N
     
       examiner occurence j
     
       si décison = supprimer i
            noccurence = noccurence + 1 
       sinon
           tab(j-noccurence) = tab(j)
       fin si
     
    fin pour
    N = N - noccurence
    est très nettement plus efficace que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    occurence = Vrai
    tant que occurence = Vrai
     
        occurence = Faux
     
        pour j = 0 jusqu'à j = N
     
          examiner occurence j
     
           si décison = supprimer j
               pour i = j+1 jusqu'à j = N
                  tab(i-1) = tab(i)
               fin pour
               N = N - 1
               occurence = Vrai
               sortie pour
           fin si
        fin pour
     
    fin tant que

Discussions similaires

  1. Besoin de conseils algo
    Par Magno dans le forum Débuter
    Réponses: 4
    Dernier message: 30/03/2012, 19h13
  2. besoin de conseil : ajout redondance = performances ?
    Par -=mateo=- dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/11/2010, 18h08
  3. [Performance] besoin de conseils
    Par Esil2008 dans le forum Administration
    Réponses: 6
    Dernier message: 07/11/2008, 17h27
  4. Passage de VB6 a l'algo, besoin de conseils
    Par touf54 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 13/01/2008, 16h05
  5. Réponses: 1
    Dernier message: 06/01/2003, 07h55

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