debutant: gestion de la mémoire

debutant: gestion de la mémoire - Java - Programmation

Marsh Posté le 24-03-2006 à 11:34:34    

Bonjour
 
J'ai créer une suite de classe qui me permet d'afficher et de gerer des courbes trés simplement. Certaine hérite de JComponnent pour l'affichage.
 
Dernierement, aprés l'ajout de quelque ligne, le fameux "OutOfMemoryError: Java head space" est aparue.
 
J'ai donc suprimé ces quelques lignes (qui créaient et remplissaient un nouvelle ArrayList) mais l'erreur persiste.
 
Ce que j'aimerais c'est connaitre les principe courant pour gerer les tailles d'objet et la memoire dispo dans la jvm. J'ai pas trouvé de tutorial pour débutant s'attardant sur ce probleme.
 
j'ai essayé "java -Xms6m maClass" mais ça marche pas.
 
Merci
Blaise
 
Edit: je code avec jEdit et compile avec javac, en bon débutant (et suite au conseil des anciens :D) j'evite Eclipse et consoeurs.


Message édité par blaise_laporte le 24-03-2006 à 11:37:09
Reply

Marsh Posté le 24-03-2006 à 11:34:34   

Reply

Marsh Posté le 24-03-2006 à 12:28:56    

Je suis pas un pro de la mémoire sous java, mais si tu veux faire disparaître le OutOfMemory, faut voir si ton code génère pas un truc trop gros et sinon l'option à passer à la JVM pour outrepasser ça, c'est plus -Xmx pour définir une taille maximum que peut utiliser la JVM. -Xms définit la taille minimum mais ne change pas la taille max qui se trouve être 64 megs par défaut.


---------------
Linux registered user #352556
Reply

Marsh Posté le 24-03-2006 à 14:00:53    

l'idée générale c'est de supprimer des collections ce qui ne te sert plus.
 
on peut voir ton code ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 24-03-2006 à 14:15:37    

nraynaud a écrit :


on peut voir ton code ?


 
Ben, c'est un package entier d'une dizaine de class dont certaine ateint les 400 lignes (avec commentaire).  
Et comme j'arrive pas à savoir à partir de quand la mémoire me fais defaut...
 

nraynaud a écrit :

l'idée générale c'est de supprimer des collections ce qui ne te sert plus.


 
Ben, je suis assez d'accord, mais comment suprimer dans la bibliotheque une collection qui n'est plus utilisée?
 
J'ai essayé de rechercher une classe dans l'api de java qui me permettrait de connaitre la taille en octet d'un objet, mais j'ai pas trouvé.

Reply

Marsh Posté le 24-03-2006 à 14:22:47    

blaise_laporte a écrit :

Ben, c'est un package entier d'une dizaine de class dont certaine ateint les 400 lignes (avec commentaire).  
Et comme j'arrive pas à savoir à partir de quand la mémoire me fais defaut...
 
 
 
Ben, je suis assez d'accord, mais comment suprimer dans la bibliotheque une collection qui n'est plus utilisée?
 
J'ai essayé de rechercher une classe dans l'api de java qui me permettrait de connaitre la taille en octet d'un objet, mais j'ai pas trouvé.


 
Tu peux utiliser une classe implémentant l'interface MemoryMXBean. De même que des println peuvent te permettre de voir où ça chie.
 
Même interface pour supprimer une collection qui n'est plus utilisée(enfin il me semble)


---------------
Linux registered user #352556
Reply

Marsh Posté le 25-03-2006 à 22:36:16    

Jprofiler / JProbe (préférence pour le premier)


Message édité par darklord le 25-03-2006 à 22:36:25
Reply

Marsh Posté le 27-03-2006 à 11:37:53    

Bon, ben, c'etait une erreur de ma part dans la programation.
 
Une erreur toute stupide qui plus est.
 
Mais merci tout de même pour vos coup de main!
 
Blaise

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed