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 :

Java heap space : Manipulation de liste volumineuse


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Par défaut Java heap space : Manipulation de liste volumineuse
    Bonjour à tous,

    Après de nombreuses recherches sur le net ainsi que sur les forums de développez.com je fais toujours face à java.lang.OutOfMemoryError.

    Au sein d'une application web un utilisateur à la possibilité d'afficher des statistiques diverses. Cela consiste donc à ramener des enregistrements de la base de donnée (MySql) puis d'effectuer des test afin de faire différents calculs. Le problème se situe sur le faite que ces statistiques peuvent s'opérer sur un nombre de ligne très important (Supérieur au millions). Par conséquent, lors de l'exécution de ma requête via hibernate puis récupération des résultats de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List result = (ArrayList) session.createSQLQuery(maRequete).list();
    mon application provoque des java.lang.OutOfMemoryError logique.

    Afin de palier à ce soucis j'ai donc procédé à une augmentation mémoire de la JVM tout en sachant que cela ne ferait que retarder ces problèmes.
    D'après de nombreux postes, la solution consistant à ramener progressivement les enregistrements de la base de données était la meilleure.
    j'ai donc effectué de nombreux test en ce sens en jouant dynamiquement sur le LIMIT de mes requêtes SQL. Effectivement je ne rencontre plus les problèmes de mémoires mais ces requêtes sont de plus en plus longues à s'exécuter plus j'avance dans les paliers (par tranche de 100000 par exemple).Le problème est que certaines contraintes me sont imposées notamment au niveau d'un temps de réponses raisonnables et donc je n'ai pu retenir cette solution.

    Je me tourne donc vers vous pour avoir certains avis, ou certaines méthodes permettant de palier à ce problème. Si de plus amples informations vous sont nécessaires n'hésitez pas à me demander.

    Merci par avance
    Lands

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Ces calculs ne pourraient-ils pas être effectués directement par la base de données (via une procédure stockée pour optimiser les traitements lourds) ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Par défaut
    Les procédures stockées sont un sujet que je ne maîtrise vraiment pas donc je n'avait pas envisagé cette éventualité.
    Je vais essayer d'effectuer une étude sur la faisabilité via ces procédures.
    Mon post se retrouve assez mal placé finalement .

    Merci pour ta question qui va peut être m'apporter une solution. Je reste également ouvert à toute autre remarque.

  4. #4
    Membre expérimenté Avatar de jiddou
    Inscrit en
    Août 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 247
    Par défaut
    Pourrais tu nous dire quelle sgbd tu utilises.

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Par défaut
    Le SGBD utilisé est MySql dans sa version 5.0.16.

Discussions similaires

  1. [Info] Chargement image et Java heap space
    Par dazz_x dans le forum Langage
    Réponses: 9
    Dernier message: 11/09/2007, 11h51
  2. Java heap space
    Par youdev dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 10/07/2007, 11h10
  3. [jarsigner] java heap space
    Par GLDavid dans le forum Langage
    Réponses: 3
    Dernier message: 16/08/2006, 11h35
  4. Eclipse erreur : java.lang.OutOfMemoryError: Java heap space
    Par sderecourt dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/04/2006, 11h28
  5. [ memoire ] Java Heap Space
    Par natha dans le forum Général Java
    Réponses: 10
    Dernier message: 23/01/2006, 11h15

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