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 :

[JVM][Mémoire] Une erreur apparait suivant la plateforme


Sujet :

Java

  1. #1
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut [JVM][Mémoire] Une erreur apparait suivant la plateforme
    Bonjour,

    Je viens de coder un programme de 3000 lignes qui permet à partir d'une base de données d'extraire 6 fichiers Excel via l'API JExcel.
    J'ai réalisé le developpement sous Eclipse et je n'ai eu aucun problème lors de l'execution.

    Je passe donc le programme en production sur un Sun Fire possedant 8 Go de RAM libre.

    Lors de l'execution sur le SunFire, j'obtiens l'erreur suivante :
    Exception in thread "main" java.lang.OutOfMemoryError
    D'où une certaine inquiétude ....

    Si vous avez une idée, quelque chose a me mettre sous la dent, je suis preneur... je suis à court d'idée sur ce problème....
    Grave urgent !!!

  2. #2
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    utilise les parametres de jvm -Xmx et -Xms
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  3. #3
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Effectivement, je travaillais avec ces paramêtres mais pas assez haut...
    Merci bien
    Grave urgent !!!

  4. #4
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    si tu dois utiliser des paramètres de mémoires élevé c'est que tu as un problème dans ton code. Fait voir le bout de code ou tu charges ces lignes de ta db.
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  5. #5
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Petite explication
    V_R2_Grp est un vecteur qui contient un nombre conséquent d'objet (environ 25000 )
    Après l'avoir rempli, je traite chaque donnée que j'insere dans un Tableau déclaré comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        String [][] Tableau_F2Grp = new String [38][V_R2_Grp.size()];
    le Tableau fait donc 38 colonnes et dispose d'environ 25000 lignes

    Ensuite le tableau contient toutes mes données retraités que je réinjecte dans une Feuille Excel appelé Feuille2 (j'utilise l'API Jexcel)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try
    					{
    						for (int k = 0;k<38; k++)
    							for (int l=0;l<V_R2_Grp.size();l++)
    								Feuille2.addCell(new Label(k,l+1,Tableau_F2Grp[k][l]));
    						Tableau_F2Grp = null;
    					}catch(jxl.write.WriteException we)
    					{we.printStackTrace();}

    Ce traitement ci est effectué 6 fois dans le programme, qui plante vers le 5eme traitement.
    Grave urgent !!!

  6. #6
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    rien ne me choque dans ton code

    as tu la possibilité d'utiliser un profiler ?
    tu pourrais voir la taille mémoire de Feuille2 par exemple (elle semble être la seule à persister tout au long du prog, vu sa portée)
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  7. #7
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Citation Envoyé par austin P.
    rien ne me choque dans ton code

    as tu la possibilité d'utiliser un profiler ?
    tu pourrais voir la taille mémoire de Feuille2 par exemple (elle semble être la seule à persister tout au long du prog, vu sa portée)
    Kesako un profiler?
    Grave urgent !!!

  8. #8
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    style optimize it de borland par exemple
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  9. #9
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    Salut,

    Je rencontre un probleme similaire, as tu reussi a resoudre ton probleme ?

    sylvain_2020

  10. #10
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Citation Envoyé par austin P.
    utilise les parametres de jvm -Xmx et -Xms
    Voila avec quoi j'ai résolu le problème !

    j'appelle la jvm et je lui demande énormément de mémoire (200 Mo au min et max) et mon programme tourne.
    De plus, en visualisant via "top", j'ai réussi à voir que le programme prend environ 99Mo de Ram mais bon..... je l'ai pas dit a l'admin système :p Ca me garde une marge si j'ai besoin d'un peu de RAM pour un autre prog hihi :p
    Grave urgent !!!

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

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. C++Builder fait une erreur de calcul
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/01/2004, 22h27
  3. [VB6] Source D'une erreur
    Par krest dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/07/2003, 17h33
  4. [procédure PG] Une erreur mystérieuse...ou pas
    Par doohan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/07/2003, 17h16
  5. Ne pas formater une erreur
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 2
    Dernier message: 18/03/2003, 14h13

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