Problem de Java heap space
kamilia_85
Messages postés
24
Statut
Membre
-
biboo -
biboo -
Bonjour,
je vien de terminé mon projet qui traite les textes( 600 texts ) [classification de texts]mais j'ai rencontré ce message quand j'ai traité simplement 100 text !! :
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
sachant que j' utilise le jbuilder 2005
es que ce problem a un rapport avec la RAM ??
svp aidez moi .
je vien de terminé mon projet qui traite les textes( 600 texts ) [classification de texts]mais j'ai rencontré ce message quand j'ai traité simplement 100 text !! :
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
sachant que j' utilise le jbuilder 2005
es que ce problem a un rapport avec la RAM ??
svp aidez moi .
Configuration: Windows XP Internet Explorer 6.0
3 réponses
-
salut
j'ai détruis mes objets après leur utilisation par l'instuction : System.gc ();
mais il rest le méme problem es que il y a d'autre methode plus puissante que celle ci ?
moi j'utilise des methodes, aprés l'éxecution de ces méthode j'ajoute l'instuction : System.gc ();
es que j'ai bien utilsé cette instruction ou je dois la mettre dans une autre place cad avant executé les methodes qui suit ?
merci-
Ben je ne peux pas savoir, c'est toi qui doit être capable de dire si tu détruits bien tes objets au bon moment. Et plutôt que d'appeler le garbage collector trop souvent, mets peut être tout simplement tes objets à NULL, ça devrait être plus performant. Après je ne fais là que des suppositions, je ne connais pas grand chose à Java.
-
-
Par défaut, la mémoire RAM allouée à la machine virtuelle n'est pas très grande.
Ya moyen de gérer ça lors de l'execution de l'appli' (quand tu lances ton jar/executable).
Sinon dans le code, essaie d'utiliser le moins de références possibles, essaie d'appeler le moins de fonctions possible (genre n'utiliser que la valeur de retour affectée par un méthode plutôt que la méthode elle-même), optimiser les itérations:
int length = ..; for(int i = length; i > 0 ; i--) { }
plutôt queint length = ..; for(int i = 0; i < length ; i++) { }
où tu feras appel à length plusieurs fois.
Pleins d'autres astuces -
Je dirais que tu alloues effectivement trop de mémoire... L'exception indique que tu ne peux plus rien allouer sur le tas. Il faudrait revoir ton application et t'assurer que tu détruis correctement tes objets après leur utilisation.