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

Java Discussion :

[JVM] Problème mémoire


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut [JVM] Problème mémoire
    Bonjour,

    j'avais un problème de mémoire que je réglais en modifiant la taille mémoire utilisée par la JVM (-Xms128m et -Xmx128m).

    Aujourd'hui même en mettant la mémoire à 256 Mo j'ai toujours un OutOfMemory (j'ai 500 Mo de RAM).

    Quand je lance mon appli avec Eclipse et que je donne les mêmes valeurs pour la taille de la JVM je n'ai pas de OutOfMemory alors que quand je le lance avec un script (à partir d'un jar) j'en ai un.

    Quand je lance l'appli par script ça crashe à 110 Mo environ que la taille max de JVM soit initialisée à 128 ou à 256.

    Mes questions sont donc :
    - pourquoi avec Eclipse ça ne plante pas alors que par script oui ?
    - pourquoi quand la taille de la mémoire de la JVM est à 128 ça plante à 110 Mo ?

    Toute réponses et idées seront les bienvenues.

  2. #2
    Membre éprouvé Avatar de nicgando
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 128
    Par défaut
    Salut,
    Utilises-tu du JNI (dll)?
    Lorque tu fait tourner ton programme il te reste de la RAM sur ta machine ?
    peux-tu donner ta ligne d'option Eclipse et ton script pour lancer le jar ?

    Merci

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut
    Je n'utilise pas JNI.

    Pour la RAM dans les performances j'ai :
    Mémoire physique (Ko)
    Disponible 87 000 Ko

    Argument pour lancer sous eclipse : -Xms256m -Xmx256m (dans VM arguments)

    Ligne de commande pour lancer par script :
    %JAVA_BIN%\java -jar MonJar.jar commun.MainClass -Xms256m -Xmx256m

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut
    J'ai trouvé la réponse à ma 1ère question mais la 2ème reste en suspens.

    Rappel des questions :
    - pourquoi avec Eclipse ça ne plante pas alors que par script oui ?

    visiblement les options de lancement pour modifier la taille de la mémoire de
    la JVM ne sont pas prises en compte quand je lance à partir du script.
    J'ai mis exactement les mêmes arguments pour lancer avec eclipse (avant le -Xms128m et -Xmx128m étaient mis dans VM arguments là j'ai tout mis dans Program Arguments) et du coup ça plante comme quand je lance le script.

    - pourquoi quand la taille de la mémoire de la JVM est à 128 ça plante à 110 Mo ?
    Ce que je ne comprends pas c'est qu'avec eclipe quand je mets -Xms64 et -Xmx64 l'appli crashe alors qu'elle utilise 110 Mo de mémoire pourquoi ça ne plante pas avant ?

  5. #5
    Membre éprouvé Avatar de nicgando
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 128
    Par défaut
    je crois qu'en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    %JAVA_BIN%\java -jar MonJar.jar commun.MainClass -Xms256m -Xmx256m
    tu passes les options à ton programme (récupérer dans le String[] du main)
    tu dois les passer à la jvm donc placer les arguments avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    %JAVA_BIN%\java -Xms256m -Xmx256m -jar MonJar.jar commun.MainClass
    concernant le plantage à 110Mo c'est peut être que ton programme demande par exemple 50Mo alors que la JVM est déjà à 110Mo donc on se retrouve au dessus des 128Mo

    Sinon comment fais-tu pour mesurer la taille de la JVM ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut
    Oui merci pour les options placées juste après la commande java, c'était ce que j'avais fait pour ça marche.

    Pour le calcul de la taille de la JVM je pensais que le gestionnaire sous Windows montrait la taille utilisée mais il semblerait que ça n'a rien à voir.

    La seule façon de calculer la taille de la JVM est de mettre des trace en utilisant la classe RunTime (ou encore lancer avec l'opion -verbose:gc), ou alors une personne dans un autre post m'a parlé de l'outil jconsole qui permet d'observer la mémoire utilisée avec plus de justesse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Install] [Débutant] Pb de compatibilité JVM
    Par k-reen dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 30/06/2004, 11h53
  2. [JVM & tomcat] Modifier la mémoire allouée
    Par sylvain_neus dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 22/06/2004, 09h13
  3. [JVM] Connaitre la taille mémoire utilisé par les dif classe
    Par sur_uix dans le forum Général Java
    Réponses: 4
    Dernier message: 18/09/2003, 09h17
  4. [JVM][OPTIONS][OPTIMISATION]pc dédié à Java
    Par narmataru dans le forum Général Java
    Réponses: 7
    Dernier message: 16/04/2003, 17h12
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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