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

Langage Perl Discussion :

Performance sur comptage de nombre d'éléments d'un tableau


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 18
    Points
    18
    Par défaut Performance sur comptage de nombre d'éléments d'un tableau
    Bonjour à tous,

    J'ai une petite question sur laquelle je planche mais j'ai le plus grand mal à trouver une solution.

    Voila j'ai un script qui monte en mémoire plusieurs centaines de milliers (voir des millions) d'entrées dans un tableau. Jusque là tout va bien.

    Ce tableau est ensuite utilisé pour récupérer une valeur aléatoirement dans la liste. J'ai donc une petite boucle qui vient toutes les secondes récupérer toutes les secondes la taille du tableau, je fais ensuite un rand la dessus, et récupère la valeur associé à cet index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my $nb_value = $#tab + 1;
    my $index = rand($nb_value);
     
    my $val = $tab[$index];

    Mon problème vient donc lorsque le tableau a qques millions d'entrées. Cela met plus de 10 sec à calculer la taille du tableau. Sur une boucle qui passe toutes les secondes, 10 sec de traitement ça fait beaucoup.

    Il y a-t-il une solution pour calculer rapidement la taille du tableau ?

    J'ai pensé à calculer la taille du tableau avant la boucle, et la mettre dans $tab[0]. Mais vu que la taille de tableau évolue dans le temps ($nb_value --) , j'aurais aimé connaitre une solution facile pour le calcul de la taille du tableau.

    D'avance Merci

  2. #2
    Membre chevronné

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Points : 1 894
    Points
    1 894
    Par défaut
    Comment le tableau évolue-t-il dans le temps ? C'est ton programme perl qui le modifie ? Si oui, je pense que ta solution de mettre la taille dans le premier champ est bonne, voire d'utiliser une autre variable comme compteur distinct ? Il te suffit de mettre à jour cette valeur dés que tu changes ton tableau ?

    En gros, quand tu ajoutes une ligne, tu incrémentes ton compteur en parallèle, et tu le décrémentes quand tu retires une ligne, etc... ? Ca t'évite d'avoir à recalculer à chaque fois ?

Discussions similaires

  1. comptage du nombre d'éléments dans une ligne
    Par ayoubnour dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2009, 13h57
  2. Compter le nombre d'éléments d'un tableau
    Par Ishizaki dans le forum ASP.NET
    Réponses: 28
    Dernier message: 21/04/2008, 09h08
  3. nombre d'éléments pour un tableau
    Par sakura.haruno dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 10/12/2007, 09h11
  4. Nombre d'élément d'un tableau
    Par barok dans le forum Flash
    Réponses: 3
    Dernier message: 10/10/2005, 20h02
  5. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h01

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