java.lang.OutOfMemoryError, comment résoudre ce pb svp ? [JAVA] - Java - Programmation
Marsh Posté le 15-01-2007 à 11:58:00
ok merci pour l'info.
Je suppose que cette commande permet d'allouer de 512Mo à 1024Mo ?
Peux tu m'indiquer stp à quel endroit faut il la placer ? dans le code source du programme, ou bien à l'aide d'un raccourci, par ex si l'appli s' appelle abc.jar , je peux faire un raccourci du genre:
"java -Xms512m -Xmx1024m abc.jar" ?
Marsh Posté le 15-01-2007 à 12:05:36
Super la soluce plutot que de traquer le memory leak, on augmente la ram allouee. Ca ne fait que retarder le probleme.
Utilise plutot un profiler pour regarder ou tu perds de la memoire.
Marsh Posté le 15-01-2007 à 12:10:35
gizmo a écrit : Super la soluce plutot que de traquer le memory leak, on augmente la ram allouee. Ca ne fait que retarder le probleme. |
Comme je disais je n'y connais absolument en programmation.
Pour le profiler, sais tu ou je peux en trouver un ? car effectivement je souhaiterai aussi savoir, à partir de combien de mémoire utilisée ça plante......
Marsh Posté le 15-01-2007 à 12:13:37
JProfiler fait ça très bien, et si c'est une appli métier qui n'est pas développée chez vous il faudrait faire remonter le truc au fournisseur de l'appli non?
Marsh Posté le 15-01-2007 à 12:14:42
Hum, si tu n'y connais rien en Prog, ca va pas aider d'avoir un profiler, car t'as besoin des sources pour avoir le detail etc...
Mais ajouter de la memoire ne fera que retarder le probleme, car, a moins de manipulations exceptionnelles de gros volumes d'information, te ne devrais jamais obtenir un OutOfMemory.
Marsh Posté le 15-01-2007 à 12:21:48
masklinn a écrit : JProfiler fait ça très bien, et si c'est une appli métier qui n'est pas développée chez vous il faudrait faire remonter le truc au fournisseur de l'appli non? |
Ok merci pour l'info, je vais voir de ce coté. En fait le développement de l'appli est fini depuis un bon moment, mais il restait qq bug aléatoire comme celui là. Et dans notre équipe actuelle, je vais pouvoir passer l'info.
Marsh Posté le 15-01-2007 à 12:23:28
gizmo a écrit : Hum, si tu n'y connais rien en Prog, ca va pas aider d'avoir un profiler, car t'as besoin des sources pour avoir le detail etc... |
Je vais communiquer l'outil à une personne de l'equipe qui travaille avec les sources
En fait le programme en question fait appel à de grosses bases de données, il serait donc interessant de voir ce qui pose probleme exactement
Marsh Posté le 15-01-2007 à 13:52:44
gizmo a écrit : Hum, si tu n'y connais rien en Prog, ca va pas aider d'avoir un profiler, car t'as besoin des sources pour avoir le detail etc... |
Cette page :
http://java.sun.com/j2se/1.5.0/doc [...] /java.html
indique que la mémoire maximale que Java peut allouer par défaut (valeur par défaut de l'option -Xmx) vaut 64 Mo. Tout dépend de l'application, mais cela ne me paraît pas une limite atteignable seulement avec des manipulations "exceptionnelles" de données... Pour ma part, je travaille quotidiennement sur les applications qui manipulent des volumes de données bcp + importants.
D'autre part, comment peut-on avoir un memory leak en Java ? Dans les langages où la mémoire est désallouée par le programmeur, cela correspondrait (dans mon interprétation) à une désallocation oubliée. En Java le garbage collector le fait pour nous, je ne vois pas comment on peut avoir un memory leak. A la limite en ayant des objets plus utilisés mais encore atteignables dans le graphe d'objets : il faut vraiment très mal coder pour ça. Non ?
Marsh Posté le 15-01-2007 à 14:46:12
Non, il ne faut pas specialement coder tres mal.
http://www.google.com/search?clien [...] 8&oe=utf-8
Marsh Posté le 15-01-2007 à 15:10:51
gizmo a écrit : Super la soluce plutot que de traquer le memory leak, on augmente la ram allouee. Ca ne fait que retarder le probleme. |
Ma soluce est proportionnelle au niveau de détail d'information qu'il a donné. On n'a strictement aucune info sur son appli (standalone, gui, J2EE ?).
De plus la consommation mémoire élevée peut être du à une brique développé en externe donc il n'aura d'autre choix d'augmenter la mémoire.
Marsh Posté le 15-01-2007 à 15:28:25
phnatomass a écrit : Ma soluce est proportionnelle au niveau de détail d'information qu'il a donné. On n'a strictement aucune info sur son appli (standalone, gui, J2EE ?). |
je sais pas si t'avais vu, suite à ta réponse je voulais savoir stp :
"
Je suppose que cette commande permet d'allouer de 512Mo à 1024Mo ?
Peux tu m'indiquer stp à quel endroit faut il la placer ? dans le code source du programme, ou bien à l'aide d'un raccourci, par ex si l'appli s' appelle abc.jar , je peux faire un raccourci du genre:
"java -Xms512m -Xmx1024m abc.jar" ? "
Marsh Posté le 15-01-2007 à 16:48:46
flashy_fiber a écrit : "java -Xms512m -Xmx1024m abc.jar" ? " |
ouais
java -Xms512m -Xmx1024m -jar abc.jar
Marsh Posté le 15-01-2007 à 16:55:07
phnatomass a écrit : ouais |
ok merci pour l'info, je vais regarder aussi en parallele le profiler
Marsh Posté le 15-01-2007 à 17:38:25
the real moins moins a écrit : putain mais rtfm |
Hay toi tu m'as toujours pas répondu enfoiré de communiste de merde
Marsh Posté le 15-01-2007 à 17:47:06
euh ?
répondu a quoi ?
Marsh Posté le 15-01-2007 à 17:54:40
Code :
|
Et c'est dans la poche
Marsh Posté le 15-01-2007 à 18:02:41
the real moins moins a écrit : euh ? |
Mes questions dans blablaprog sur ta toolchain XML
Marsh Posté le 15-01-2007 à 18:19:37
the real moins moins a écrit : genre je lis blablaprog ? |
REPONDEZ A LA QUESTION 888
Marsh Posté le 15-01-2007 à 18:20:39
euh ben pose la à un endroit ou je la verrai et on verra si on peut voir, hein
Marsh Posté le 15-01-2007 à 18:26:42
Ben c'est quoi ta toolchain XML
Marsh Posté le 15-01-2007 à 18:32:12
euh, tu veux dire genre quels outils j'utilise pour éditer du xml a la main ? j'ai une tete de specialiste d'xml ?
rien a part intellij - qui a quand meme un excellent editeur integré et TextWrangler
un jour j'avais codé un espece de machin viteuf pour faire du search/replace en xpath, faute de trouver un outil valable qui le fasse
Marsh Posté le 15-01-2007 à 18:57:59
Ptain mais t'es un javateux merde
T'es censé bouffer du XML pour ton ptit dej
Marsh Posté le 15-01-2007 à 18:59:31
ReplyMarsh Posté le 15-01-2007 à 19:22:57
the real moins moins a écrit : spa pour ca que je me l'edite la main |
Mais j'm'en fous, je veux juste les noms des outils que tu utilises pour faire du XML, que tu l'édites à la main ou en drag&droppant des boiboites j'm'en fous je veux des noms
Marsh Posté le 15-01-2007 à 19:25:30
non mais ni l'un ni l'autre, je l'edite pas, stout
pour le reste, j'ai repondu
Marsh Posté le 16-01-2007 à 01:16:15
gizmo a écrit : Non, il ne faut pas specialement coder tres mal. |
Ah OK, pour une appli qui tourne en continu. Je fais du calcul scientifique, je rencontre le problème plutôt en C++ quand j'alloue un pointeur sans le détruire dans une boucle qui est exécutée des milliards de fois. A la limite c'est plus facile à voir, la plupart du temps le PC est à genoux en 10 secondes. Au temps pour moi.
Marsh Posté le 16-01-2007 à 02:16:42
masklinn a écrit : Mais j'm'en fous, je veux juste les noms des outils que tu utilises pour faire du XML, que tu l'édites à la main ou en drag&droppant des boiboites j'm'en fous je veux des noms |
remplissage récursif par application successives de ptites feuilles XSL, comme ça t'es sûr qu'à tout moment de l'édition le fichier est valide
Marsh Posté le 19-01-2007 à 11:12:45
sircam a écrit :
|
A partir du moment où tu as un OutOfMemoryError, ce n'est pas la peine d'essayer de catcher l'exception et de réparer le bousin.
Ton appli est dans un état non déterminé et il vaut mieux la laisser mourrir dignement !
Et en plus je ne suis même pas sur que tu rentres dans ton block catch...
Marsh Posté le 19-01-2007 à 11:17:54
ben si t'es pas sûr, évite de donner des leçons, ça vaut mieux
Marsh Posté le 19-01-2007 à 11:20:11
Non mais le block catch, c'était pour rire, hein!
Marsh Posté le 19-01-2007 à 11:30:28
sircam a écrit : Non mais le block catch, c'était pour rire, hein! |
Oups autant pour moi, j'avais pas relevé le sarcastique
Marsh Posté le 15-01-2007 à 11:12:04
Bonjour,
J'ai une application métier qui plante de maniere aléatoire :
- JVM : 1.3.1-b24
- OS : Windows 2000 Server SP4 (environnement citrix)
- Consommation mémoire : entre 30 Et 80Mo
- Mémoire serveur : 2.5Go
Cette application est exécutée par 10-20 utilisateurs sur le serveur.
Lors du plantage, voilà le message qui revient systématiquement dans le log :
Exception occurred during event dispatching:
java.lang.OutOfMemoryError
<<no stack trace available>>
Je précise que je ne connais absolument rien en programmation.
Si qq a une idée pou résoudre ce problème, merci d'avance
Message édité par flashy_fiber le 15-01-2007 à 11:12:29