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 :

Erreur "OutOfMemoryError"


Sujet :

Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Erreur "OutOfMemoryError"
    Bonjour tout le monde,

    Mon programme fonctionne correctement jusqu’à ce que j'ai fait la lecture d'un fichier volumineux de taille 202Mo.

    Une erreur s'est produite:

    "Exception in thread "main" java.lang.OutOfMemoryError: Java heap space"

    J'ai augmenté la taille maximale de la mémoire allouée pour JVM en modifiant VM argument (-Xmx) mais l'erreur persiste.

    Encore j'ai eu l'affichage de :

    "Error occurred during initialization of VM! Could not reserve enough space for object heap"

    Mon système est de 32 bit, RAM = 4GO

    Je me suis bloquée!

    Je vous serais très reconnaissante si vous pouviez m'aider

    Merci d'avance!

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 076
    Points : 7 983
    Points
    7 983
    Par défaut
    Non l'erreur ne persiste pas. Un out of memory c'est different que "couldn't reserve enough space".

    Ce deuxieme message indique que tu demandes plus de mémoire que ce que ne permet la VM, qui je presume est en 32 bit et donc t'interdira d'allouer plus que ce qui est possible d'adresser.

    Donc soit tu passes en 64 bit.

    Soit tu cherches dans ton code pourquoi ton petit fichier de 200 megas ne rentre pas dans la 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 chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par Asma.md2002 Voir le message
    Bonjour tout le monde,

    Mon programme fonctionne correctement jusqu’à ce que j'ai fait la lecture d'un fichier volumineux de taille 202Mo.

    Une erreur s'est produite:

    "Exception in thread "main" java.lang.OutOfMemoryError: Java heap space"

    Es-tu obligé de chargé l'intégralité du fichier dans ton programme? Quel type de traitement subit-il ?

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci plawyx et wax78 pour vos réponses.

    oui je dois charger le fichier en entier. il va jouer le rôle d'une base qui contient des informations sur des protéines.
    L'utilisateur indique les protéines à rechercher et je vais afficher les informations relatives à ces protéines à partir de cette base ( notre fichier ).

    Comment faire pour migrer vers un système de 32 bit ?

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu es sur un système 32 bits, donc java est limité à +- 1G de mémoire (ça dépend un peu de l'OS)

    La question posée, c'est qu'est-ce que tu fous dans ton code pour que ce fichier de 200M nécessite >1G pour le traitement

    C'est 5 fois plus que la taille du fichier. Tu peux utiliser un OS 64 bits et une java 64 bits pour dépasser cette barrière de 1G, mais c'est plutot une fuite en avant.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par Asma.md2002 Voir le message

    oui je dois charger le fichier en entier. il va jouer le rôle d'une base qui contient des informations sur des protéines.
    L'utilisateur indique les protéines à rechercher et je vais afficher les informations relatives à ces protéines à partir de cette base ( notre fichier ).
    tu peux donc lire le fichier et extraire les données relatives aux protéines sélectionnées sans pour autant stocker les autres données dans la jvm (ce que tu sembles faire: charger le fichier).

    Citation Envoyé par Asma.md2002 Voir le message
    Comment faire pour migrer vers un système de 32 bit ?
    200 Mo, même avec une jvm 32 bits: cela doit le faire. Peux-tu nous donner plus d'infos sur ton programme, son code et sa gestion des ressources (et libérations des ressources surtout)? Il y a peut-être des couacs de ce coté là.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci plawyx & tchize. Vous avez raison : )

    J'ai modifié mon code et le problème est résolu. J'ai pu l'exécuter finalement .

    Merci pour vos contributions.

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

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