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

Java Discussion :

Java Heap Space memory


Sujet :

Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut Java Heap Space memory
    Bonjour tout le monde,

    Je suis entrain de faire certaines expérimentations sous Java, ça consiste à traiter des données et mesurer le temps de traitement nécessaire en augmentant la taille des données progressivement. Pour gagner du temps je lance la même application sur deux machines différentes:

    1) Une unité HP core de duo, 3.16 GHZ, 4G de RAM, système Ubuntu 10.04 Lucid.
    2) Un pc portable Dell inspiron core i3, 2.4 GHZ, 4G de RAM, système Ubuntu 12.10 (quantal).

    Je dédie 3G de RAM à mon projet java.

    En utilisant la première machine HP aucun problème ne se pose, par contre avec mon pc portable Dell, quand je dépasse certaine taille j'obtiens le problème de mémoire: "java.lang.OutOfMemoryError: Hava heap space", alors qu'à mon avis cette machine est plus performante que la première.

    Avez-vous une idée de ce problème ? est-il un défaut du système ubuntu 12.10 ?

    Merci d'avance.

    Cordialement.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Si elle est plus performante il y'a un possibilitées qu'elle a donc emmagasiner plus de données et donc que sa mémoire soit saturée plus rapidement d'ou le message ?

    Sinon quoiqu'il en soit ce n'est pas un problème d'OS ou de machine, c'est tout simplement que tu demandes plus de mémoire que disponible.

    Il faut soit l'augmenter (paramètres xms, xmx etc), soit trouver un moyen de réduire l'utilisation mémoire.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Si elle est plus performante il y'a un possibilitées qu'elle a donc emmagasiner plus de données et donc que sa mémoire soit saturée plus rapidement d'ou le message ?

    Sinon quoiqu'il en soit ce n'est pas un problème d'OS ou de machine, c'est tout simplement que tu demandes plus de mémoire que disponible.

    Il faut soit l'augmenter (paramètres xms, xmx etc), soit trouver un moyen de réduire l'utilisation mémoire.
    Merci wax78 pour votre réponse,

    J'ai déjà essayé d'augmenter la mémoire sur mon pc portable en faisant -Xms1024m -Xmx3072m, mais toujours le même problème se pose, alors que pour la première machine j'arrive à exécuter mon application en attribuant seulement 2G de RAM au projet (-Xms1024m -Xmx2048m). J'ai vu avant le lancement de l'application qu'il n'y a pas de des processus qui bouffent de la mémoire !!! je ne sais d'où viens ce problème ???

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Quel est la version exacte de java sur les 2 machines (valeur retournée par java -version) ?


    a++

  5. #5
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Plop,

    Quelle est l'architecture des deux machines ? Une machine 32 bits ne peut adresser que 4 Go de mémoire à un processus (en sachant qu'une partie est réservée au système, une valeur variant avec les OS, mais pouvant atteindre 1Go).

    Pourquoi ne pas simplement adresser 2Go puisque cela fonctionne ? Ou si tu requiers une certaine puissance de calcul, essaye de répartir ton application sur plusieurs machines, en utilisant des technos à la Hadoop.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,

    Quel est la version exacte de java sur les 2 machines (valeur retournée par java -version) ?


    a++
    Bonjour,

    Voici les valeurs exactes retournées par la commande java -version:
    1ère machine: 1.6.0_24
    2ème machine: 1.7.0_09

    A+

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut
    Citation Envoyé par olivier.pitton Voir le message
    Plop,

    Quelle est l'architecture des deux machines ? Une machine 32 bits ne peut adresser que 4 Go de mémoire à un processus (en sachant qu'une partie est réservée au système, une valeur variant avec les OS, mais pouvant atteindre 1Go).

    Pourquoi ne pas simplement adresser 2Go puisque cela fonctionne ? Ou si tu requiers une certaine puissance de calcul, essaye de répartir ton application sur plusieurs machines, en utilisant des technos à la Hadoop.
    Bonjour,

    Les deux machines ont une architecture 64 bits.
    Non, pour la deuxième machine ça fonctionne pas avec 2Go c'est pour cette raison que j'ai essayé d'aller jusqu'à 3Go mais ça ne fonctionne toujours pas. Par contre, pour la première machine 2Go suffit largement.

    A+

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut
    Citation Envoyé par olivier.pitton Voir le message
    Plop,

    Quelle est l'architecture des deux machines ? Une machine 32 bits ne peut adresser que 4 Go de mémoire à un processus (en sachant qu'une partie est réservée au système, une valeur variant avec les OS, mais pouvant atteindre 1Go).

    Pourquoi ne pas simplement adresser 2Go puisque cela fonctionne ? Ou si tu requiers une certaine puissance de calcul, essaye de répartir ton application sur plusieurs machines, en utilisant des technos à la Hadoop.
    Rebonjour,

    Comment peut-on utiliser ces techniques à la Hadoop ???

    Merci d'avance.

  9. #9
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Plop,

    Malheureusement je n'essaye pas de résoudre ton problème, mais de le détourner. De ce que j'ai compris, tu as besoin d'une bonne puissance de calcul, pour un particulier. Ma "solution" demande beaucoup de changements, et donc je ne la recommande pas. Mais elle a le bénéfice de rendre plus scalable ton application.

    Comment peut-on utiliser ces techniques à la Hadoop ???
    L'objectif est de répartir la mémoire utilisée sur plusieurs machines. Plutôt que d'utiliser une machine avec un processus avec 3Go de mémoire, pourquoi ne pas utiliser soit 2 processus sur la même machine avec 1.5 Go, ou alors de lancer 2 processus sur deux machines distinctes et de les faire communiquer. Néanmoins cela implique un gros changement dans ton code, et n'est clairement pas la meilleure solution, bien qu'intéressante a réalisé.

    Essaye d'installer, ou d'utiliser tout du moins, les mêmes versions de Java.

  10. #10
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Laurent_3154 Voir le message
    Voici les valeurs exactes retournées par la commande java -version:
    1ère machine: 1.6.0_24
    2ème machine: 1.7.0_09
    En fait je voulais le détail complet retournée par java -version, avec le nom de la JVM, etc...

    Les deux JVM sont-elles en 32 bits ou en 64 bits ?


    a++

  11. #11
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    Un autre piste que la compatibilité OS/JDK 32/64 bits, un problème dans l'installation du JDK. J'ai déjà eu le cas où cela partait en OutOfMemory et la résintallation propre d'un JDK avait réglé le problème (D'ailleurs c'était sur une Ubuntu ).

Discussions similaires

  1. Java Heap Space out of memory
    Par lelfedesboa dans le forum Langage
    Réponses: 1
    Dernier message: 22/05/2013, 16h50
  2. out of memory java heap space : 2048M pas suffisant?
    Par waflyx dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 21/12/2007, 19h58
  3. [Info] Chargement image et Java heap space
    Par dazz_x dans le forum Langage
    Réponses: 9
    Dernier message: 11/09/2007, 11h51
  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