banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

State Of The Map 2024

#1 Thu 26 March 2009 16:25

Cherubin
Participant assidu
Lieu: NGC 1300
Date d'inscription: 10 Jun 2008
Messages: 273

[gvSIG] Erreur Overflow Java

Bonjour le forum

Dans gvSIG j'utilise une application SEXtante et lorsque je lance le calcul, il m'affiche :

java.lang.StackOverflowError


J'ai beau cherché sur Internet et tout ce que je trouve comme réponse c'est de modifier ma fonction qui est probablement récursive ou de vider ma pile. Je ne suis pas en train de coder moi, j'utilise gvSIG. J'ai fait les mises à jour de mon java (Image I/O et JRE) et j'utilise gvSIG (1.1.2) version Java (1.5.0_12).

Merci ben gros pour votre aide

Hors ligne

 

#2 Sun 29 March 2009 00:15

Sylvain33
Participant assidu
Lieu: Mauritius
Date d'inscription: 13 Feb 2007
Messages: 320
Site web

Re: [gvSIG] Erreur Overflow Java

Arf ! C'est un des reproches à faire à gvSIG. Lorsqu'on obtient une erreur, on comprend pas bien le message.... je ne sais pas si c'est une spécificité aux programmes écrits en java !

Désolé je ne peux pas répondre à ta requête, je te suggères de poster un message sur la liste gvsig ici : http://runas.cap.gva.es/mailman/listinf … ernacional ou ici http://n2.nabble.com/gvSIG-f2000051.html
Tu es sur quel OS?

Dernière modification par Sylvain33 (Sun 29 March 2009 00:16)

Hors ligne

 

#3 Sun 29 March 2009 11:15

Eclesia
Participant actif
Date d'inscription: 18 Apr 2007
Messages: 59

Re: [gvSIG] Erreur Overflow Java

Sylvain33 a écrit:

Arf ! C'est un des reproches à faire à gvSIG. Lorsqu'on obtient une erreur, on comprend pas bien le message.... je ne sais pas si c'est une spécificité aux programmes écrits en java !


Ne comdamne pas Java pour une erreur de GvSIG. crois moi les erreurs java sont les plus explicites, c'est juste qu'elles n'ont pas été encapsuler dans de bien beau et bien jolie message pour utilisateur dans le cas gvsig.


Développeur : GeoAPI GeotoolKit Puzzle-GIS - Société Geomatys

Hors ligne

 

#4 Sun 29 March 2009 16:20

Thierry Badard
Participant occasionnel
Lieu: Québec, Canada
Date d'inscription: 5 Sep 2005
Messages: 23
Site web

Re: [gvSIG] Erreur Overflow Java

Salut,

Les messages type "java.lang.StackOverflowError" sont symptomatiques en Java d'un dépassement de la mémoire de pile de la machine virtuelle. Ceci se produit notamment lors de l'appel à des méthodes hautement récursives (parsing XML, transformation XSLT, etc.). La solution, s'il est impossible de modifier la méthode à l'origine de l'erreur (et dans bien des cas, c'est le cas ;-) ), est d'augmenter cette mémoire de pile. Par défaut, celle-ci varie en 128Ko et 512Ko suivant les versions de Java et du système d'exploitation. Pour l'augmenter, il existe un paramètre -Xss à passer à l'interpréteur Java.

Un java -X sur une invite de commande ou un shell Linux te donnera l'ensemble des options qui permettent de jouer avec les seuils de mémoire de la machine virtuelle Java. Si tu lances un programme Toto et que tu veux augmenter la mémoire de pile disponible pour celui-ci, le lancer par la commande :

Code:

java -Xss1m Toto

Ceci fera passer la mémoire de pile disponible à 1 Mo

Pour GvSIG, tu dois avoir un appel à l'interpréteur Java dans un des scripts de démarrage du logiciel (je n'ai malheureusement pas les scripts sous les yeux) car celui-ci repose sur ce langage. Une fois que tu l'as isolé, intercale dans l'appel ton paramètre -Xss avec la valeur voulue et relance GvSIG et ton traitement, si cela ne marche toujours pas, ré-itère l'opération en augmentant encore ta taille de pile insérée.

En espérant que cela aide,

Th.

--
Thierry Badard
Département des sciences géomatiques
Faculté de foresterie et de géomatique

Hors ligne

 

#5 Sun 29 March 2009 17:40

Sylvain33
Participant assidu
Lieu: Mauritius
Date d'inscription: 13 Feb 2007
Messages: 320
Site web

Re: [gvSIG] Erreur Overflow Java

Mais ça augmente la jvm de 1mo en permanence ou seulement lorsque le programme en a besoin ?

Hors ligne

 

#6 Sun 29 March 2009 21:05

Thierry Badard
Participant occasionnel
Lieu: Québec, Canada
Date d'inscription: 5 Sep 2005
Messages: 23
Site web

Re: [gvSIG] Erreur Overflow Java

En fait, c'est un brin plus compliqué que cela ... chaque thread créé dans le processus de votre programme se voit "alloué" une mémoire de pile. Naturellement, plus la taille de pile passée est grande, moins un programme pourra créer de threads sous peine de lever un message d'erreur comme quoi la mémoire est saturée. Ceci est particulièrement valable sur les processus serveurs en Java. Ils sont en effet susceptibles de recevoir beaucoup de requêtes utilisateur et donc de créer de nombreux threads afin de traiter celles-ci en "parallèle".  Voilà pourquoi cette taille est volontairement basse par défaut.

Est ce que cette mémoire est prise d'un coup ou allouée dynamiquement au fur et à mesure des besoins du thread ? Bonne question ... Il faut tester et regarder comment évolue la consommation mémoire de votre programme, car il me semble que cela dépend du système d'exploitation ... Sun est assez avare de détails sur ces points là car ils touchent bien entendu aux caractéristiques qui différencient en termes de performances une JVM d'une autre ;-).

En espérant que cela aide,

Th.

Hors ligne

 

Pied de page des forums

Powered by FluxBB