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

Eclipse Java Discussion :

Recursivité et maximum native stack size


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut Recursivité et maximum native stack size
    Bonjour,

    Encore une question : la taille maximum de la variable -Xss de la VM est 262M .

    Cela ne régle pas mon problème : un appel récursif a une méthode ne cause pas de problème pour 10 000 appels mais pour 100 000 c'est mort :

    java.lang.StackOverflowError

    Y a t'il un moyen pour augmenter le nombre de variables locales, pour pouvoir faire plus d'appel récursif ?

    Je ne dois pas comprendre une notion, pour moi du moment qu'il y a de la mémoire on peux mettre des choses non ? qq'un pourrait t'il m'expliquer rapidement le principe de la gestion du nombre de variables, et d'appels maximum géré par le JVM ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 85
    Par défaut
    Salut,

    Bon je sais pas ce que tu fais pour avoir 100 000 appels recursifs mais
    ca doit être super chaud !
    Deux choses :
    - Concernant la gestion mémoire, je vais juste t'éclaircir un peu :
    En gros, quand la JVM se lance elle initialise un espace mémoire ou tu
    pourras fourrer toutes les infos (variables) que tu as besoins cela ce régle
    avec les parametres -Xms128M -Xmx512M : en l'occurence tu auras de 128
    à 512Mo à ta disposition. Si tu en veux plus faut le spécifier au lancement
    sinon tu auras une exception OutOfMemoryError. Ou alors tu géres bien tes
    objects en les mettants à null quand tu ne t'en sert plus.

    - Concernant l'exception StackOverFlow, c'est certainement parce que tu
    as fait une boucle récursive sans condition d'arret.

    Voilà cela pourra peut-être un peu t'aider, a+
    Xavier


    [/FONT]

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Ce type d'erreur est normal si tu as un nombre d'appel récursif trop important...

    Au lieu d'augmenter la taille de la mémoire, je te recommande plutôt de transformer ta méthode récursive en méthode itérative. Tu obtiendras surement de meilleur résultat...

    a++

Discussions similaires

  1. Boost thread et stack size sous windows
    Par atapi dans le forum Boost
    Réponses: 2
    Dernier message: 18/02/2012, 09h18
  2. Stack size main()
    Par Invité dans le forum C
    Réponses: 4
    Dernier message: 22/07/2011, 12h59
  3. Block, itemize, input stack size=5000
    Par kinded dans le forum Beamer
    Réponses: 2
    Dernier message: 12/07/2009, 16h07
  4. Réponses: 5
    Dernier message: 12/04/2009, 19h09
  5. Java 1.6 : stack thread size
    Par MooGle dans le forum Général Java
    Réponses: 2
    Dernier message: 15/01/2008, 16h22

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