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 :

Table de hash limité ??


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 74
    Points : 41
    Points
    41
    Par défaut Table de hash limité ??
    Bonjour à tous,

    Je voulais savoir si les tables de hash, et d'ailleurs même les tableaux classiques, étaient limité en taille.
    En effet, lors de l'execution de mon programme qui se contente de remplir une table de hash à l'aide de données contenu dans plusieurs fichiers, windows m'avertit que la mémoire virtuelle de mon ordinateur n'est pas sufiisante et l'éxecution s'arrête toujours au même endroit. Quand je lance la même execution sur moins de fixhiers, ça passe sans problème, d'où ma question sur l'eventuel limite des tables de hash ?

    Merci.

  2. #2
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    ton pc te montre lui-même où se trouve la limite : tu montes trop de données en mémoire et il ne peut plus les stocker...

  3. #3
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    ok, merci. As tu une idée de comment contourner ce problème ?

  4. #4
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    ca dépend... il faut gérer autrement l'accès à tes données, donc déjà il faudrait que tu nous montres comment tu les gères

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ca représente quel volume de données ?
    Sinon, tu peux augmenter ton pagefile.sys

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Mais de toute façon, s'il commence à devoir taper dans la mémoire virtuelle, ça va être l'enfer point de vue vitesse...
    Dis nous ce que tu veux faire, et on pourra peut-être t'indiquer ce que tu peux essayer.

    --
    Jedaï

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jedai
    Mais de toute façon, s'il commence à devoir taper dans la mémoire virtuelle, ça va être l'enfer point de vue vitesse...
    Certes, mais en tournant la nuit, ça peut passer. Maintenant, si c'est un batch quotidien, ça va être plus délicat...

  8. #8
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    En fait j'ai pas le code et le fichier sur cet ordi, mais je vais qd même tenter de vous expliquer :
    - J'ai 290 fichiers de 100 lignes chacun soit 29000 lignes. Sur chaque ligne il y a différentes mesures.
    - Ces mesures sont rangées dans un ordre bien précis qui est décrit dans un autre fichier. Ex : var1 3, var2 5, var3 1.... veut dire que les 3 premières mesures correspondent à la var1, les 5 suivantes correspondent à la var2, etc...
    - donc je lis le fichier description, je parcours mes fichiers de mesures et je mets tout ça dans un tableau du style :

    push($mesures{$nom_de_la_var},$mesure_lue)

    Et donc au bout d'un moment, ça marche plus, j'ai donc supposé que ça venait du fait que je rentrai trop de données dans mon tableau.

    Merci pour les réponses

  9. #9
    Invité
    Invité(e)
    Par défaut
    Oui, mais encore une fois la limite ne viendra pas de perl, mais de ton matériel.
    L'idéal aurait été d'avoir un bout de code, pour voir si une optimisation de ton modèle de données résultant est possible.

  10. #10
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    ok, ben j'essaye de poster un bout de code dès que je peux, mais apparament si ça vient de la machine, je vais essayer de contourner le problème...

  11. #11
    Invité
    Invité(e)
    Par défaut
    As-tu accès à un serveur de qualif ou dev avec quelques GB de RAM ?

  12. #12
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    Malheureusement non, je n'ai que mon ordi perso, PIV 2.4Ghz et 512Mo de RAM...

  13. #13
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Il faudrait aussi savoir ce que tu fais de ces mesures, parce que c'est cela qui déterminera si tu peux découper ta tâche en petits boûts ou non.

    --
    Jedaï

  14. #14
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut meme probleme
    bonjour,

    j'ai également ce probleme sur un serveur sous Unix ayant beaucoup de ressources. Qui dit serveur dit pas touche à la mémoire!!!

    pour résumer:
    j'ai un fichier de 7,6 millions de lignes avec un ID pour chaque ligne
    dès que l'ID est lu une 1ere fois, je le mets dans mon %hash comme clé (avec des valeurs associées biensur)
    puis pour chaque ligne lue, je vérifie si l'ID est déjà existant en clé.
    Si oui, je mets a jour la valeur associée,
    si non, j'ajoute l'ID en clé.

    le programme se bloque a 5 millions de lignes lues donc je suppose 2 millions de clé dans mon %hash

    une solution svp?? on m'a parlé d'une possibilité de passer ce %hash en fichier de maniere invisible pour sauvegarder la mémoire, comment faire?

    Merci

  15. #15
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Comme pour le posteur précédent, un bout de code pourrait aider...
    Sinon, tu peux utiliser l'un des modules DBM pour transformer silencieusement ton hash en petite base de donnée, et ainsi régler le problème de la mémoire.

    --
    Jedaï

Discussions similaires

  1. table, liste, hash et tout et tout.. pour débutant
    Par Eric5959 dans le forum Langage
    Réponses: 22
    Dernier message: 01/08/2008, 09h16
  2. table de hash
    Par Ganondorf dans le forum Langage
    Réponses: 21
    Dernier message: 01/10/2007, 21h36
  3. Table de hash et package.
    Par Marty000 dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2007, 09h52
  4. Réponses: 4
    Dernier message: 27/01/2006, 16h38
  5. Tables de hash
    Par miss8 dans le forum C
    Réponses: 2
    Dernier message: 16/11/2002, 17h44

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