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 Java Discussion :

Ensemble contenant peu d'éléments


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 190
    Par défaut Ensemble contenant peu d'éléments
    Bonjour,

    J'ai à manipuler beaucoup d'ensembles (quelques millions) qui ont une petite taille (typiquement 2 ou 3 éléments; quelques centaines dans le pire des cas).

    Par habitude, j'ai utilisé un HashSet mais j'ai des problème de mémoire. En effet, sa capacité est initiale est de 16. Dans mon cas, j'en conclut que typiquement 13/14 espaces mémoires sont utilisés mais vide. Et 13*1 000 000, cela fait beaucoup.

    Du coup, j'ai envie de diminuer la taille par défaut. Par exemple, je peux prendre la valeur 2. J'ai du mal à évaluer les conséquence de ce choix. Avez-vous du feedback à partager?

    Y-a-t-il d'autres choix possibles?

    Merci de votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    quelques millions ...

    Ces quantités sont habituellement plutôt traitées par une base de données.
    - Quels sont les éléments de ces ensembles ?
    - Quels types de traitements sur les éléments / ensembles ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 190
    Par défaut
    Merci de ton aide.

    D'abord mes ensembles contiennent des entiers.

    J'ai deux actions sur les ensembles:
    - ajouter un élément (au sens d'un ensemble i.e. je ne veux pas de doublon),
    - itérer sur tous les éléments.

    Concrètement, je représente un automate (faiblement) non déterministe. Je stocke donc des règles du style:
    état --- transition ----> ensemble d'états

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    La base de donnée peut répondre à ce problème
    (capable de refuser les doublons)
    et aussi pour l'itération.

    Il y aura un petit travail d'optimisation à prévoir mais bon ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 190
    Par défaut
    Merci pour ton aide.

    Je garde l'idée de la base de données sous le coude mais j'aimerai l'éviter. Elle va à contre courant que ce que nous voulons faire.

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    as-tu vu qu'en lançant ton application, tu peux demander à la JVM d'augmenter la mémoire utilisée :
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trouver les ensembles contenant un élément
    Par nanosoft dans le forum C
    Réponses: 4
    Dernier message: 31/07/2014, 17h46
  2. Réponses: 3
    Dernier message: 03/12/2010, 15h34
  3. ResultSet ne contenant qu'un élèment comme resultat
    Par fripette dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/04/2008, 14h29
  4. Boucle : pour chaque élément d'un ensemble ?
    Par monstroplante dans le forum Langage
    Réponses: 7
    Dernier message: 07/11/2005, 15h45
  5. Optimisation algo permutations éléments d'1 ensemble
    Par User dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 23/10/2005, 18h29

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