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 :

[Stratégie]grandes masses de données


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [Stratégie]grandes masses de données
    Bonjour,
    Voilà nous implémentons un algorithme en java qui utilise en entrée la matrice d'adjacence (tableau de tableau) d'un graphe. Cette matrice est composée de 0 et de 1 en forme de byte. Or cette matrice est traduite à partir de fichier benchmarks. Le problème est la taille très importante de ces fichiers (jsq'à 400000 lignes). Nous recherchons des solutions pour gérer cette masse de données sachant que cela ne tient pas en mémoire; autre que les bases de données.

    Merci

  2. #2
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    sachant que cela ne tient pas en mémoire; autre que les bases de données.
    De combien de mémoire disposez vous ? etant donné que la mémoire est contraint, est ce que le temps d'execution peut être important ? En effet, vu que toutes les données ne peuvent pas apparement être stocké en mémoire, il faudra acceder a chaque à une partie de linformation, et donc perdre du temps.
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    La mémoire dont nous disposons est de 256 M.

  4. #4
    Membre averti Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Points : 439
    Points
    439
    Par défaut Re: [JAVA : grandes masses de données]
    Citation Envoyé par TIF16
    Cette matrice est composée de 0 et de 1 en forme de byte.
    Au lieu d'avoir des bytes ne serait-il pas mieux d'avoir un tableau de boolean ?

  5. #5
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Citation Envoyé par saod
    Au lieu d'avoir des bytes ne serait-il pas mieux d'avoir un tableau de boolean ?
    ça changerait rien.

    Dans la pratique, un boolean prend au moins la même place qu'un byte.

    EDIT : Et ajouter de la mémoire, c'est pas une solution envisageable ?
    Je sais que désormais vivre est un calembour,
    La mort est devenue un état permanent,
    Le monde est aux fantômes, aux hyènes et aux vautours.
    Moi je vous dis bravo et vive la mort.

  6. #6
    Membre averti Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par Satch
    Dans la pratique, un boolean prend au moins la même place qu'un byte.
    ... ha bon...


    Citation Envoyé par TIF16
    (jsq'à 400000 lignes).
    Et combien de colonnes ?

    si tu augmentes la mémoire de la JMV avec le paramètre
    ???

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Points : 609
    Points
    609
    Par défaut
    Transformer chaque byte en bits:
    8x moins d'espace utilisé...

    Pour acceder à la valeur (1,0) n de ta ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int valeur = bits[n/8] & (0x1 << n%8) >> n%8
    Pour ecrire dans ton byte 8 bits:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int i=0; i<tailledonnée;i++)
    {
        bits[i/8] = bits[i/8] | (data << i%8)
    }

  8. #8
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Cette matrice est composée de 0 et de 1
    Inutile de stocker les 0. Il faut utiliser une matrice creuse.
    Jettes un oeil sur http://w3.ift.ulaval.ca/~dogen19/ift-10541/Laboratoires/Lab12_TablesDeDispersion.pdf
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Traitement d'une grande masse de données en Java
    Par yimson dans le forum Langage
    Réponses: 8
    Dernier message: 27/10/2013, 12h18
  2. Stratégie pour afficher un grand nombre de données
    Par oneagaindoguys dans le forum Général Java
    Réponses: 50
    Dernier message: 09/12/2010, 10h22
  3. Charger un grand tableau de données
    Par benj63 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/02/2006, 17h21
  4. [Stratégie][XML] Base de données
    Par Rampa dans le forum Format d'échange (XML, JSON...)
    Réponses: 15
    Dernier message: 12/07/2005, 15h45
  5. Réponses: 3
    Dernier message: 18/04/2004, 08h26

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