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

Langage Java Discussion :

Calculer la mémorie consommé par JAVA


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Points : 70
    Points
    70
    Par défaut Calculer la mémorie consommé par JAVA
    Bonjour,

    Etant admin systeme unix, je suis souvent confronté à des problemes de mémoires sur consommer par Java.

    J'ai vu qu'il y a une mémoire pour afficher la mémoire dans la FAQ JAVA,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
    Comment est il possible d'implémenter cette instruction afin de voir en à un instant T la consommation d'un process JAVA?

    merci pour votre aide

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Tu as plus simple: regarde du côté de la classe Runtime:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public long getFreeMem() { return Runtime.getRuntime().freeMemory(); }
    public long getTotalMem() { return Runtime.getRuntime().totalMemory(); }
    public long getMaxMem() { return Runtime.getRuntime().maxMemory(); }
    public long getUsedMem() { return getTotalMem() - getFreeMem(); }
    Ensuite, pour afficher ces différentes infos à un instant T, il te suffit de faire un System.out.println() par exemple...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Merci pour cette réponse. Mais les instructions JAVA, c'est un peu du chinois pour moi. Est ce qu'il y a pas un script java deja tout ecrit ?

    Merci

  4. #4
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par CyberChouan Voir le message
    Tu as plus simple: regarde du côté de la classe Runtime:
    Le MemoryMXBean fait la même chose

    Citation Envoyé par aikinhdo Voir le message
    Comment est il possible d'implémenter cette instruction afin de voir en à un instant T la consommation d'un process JAVA?
    Que veux-tu dire par là exactement ?
    A noter que tu peux également utiliser l'outil jconsole pour surveiller dynamiquement une application

    a++

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Points : 70
    Points
    70
    Par défaut
    Oh,

    Comment implémenter, en fait je voulais savoir comment mettre ces commandes dans un script pour surveiller la mémoire des process java qui poseraient probleme.

    En fait, je souhaite surveiller la consommation mémoire des process JAVA sur mes serveurs UNIX. Car il arrive souvent que les applis utilisant JAVA plante mon serveur avec des "out of memory", et du coup plus moyen d'aller sur mon serveur.

    merci

  6. #6
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Il est installé avec le JDK de Sun...

    a++

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Points : 70
    Points
    70
    Par défaut
    Le probleme c'est que je ne peux pas installer partout JDK.

    CyberChouan : comment je peux utiliser tes lignes de commandes, est ce qu'il l'intégrer dans les applis ou cela peut se lancer sur un process avec un PID ?

    merci

  8. #8
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par aikinhdo Voir le message
    CyberChouan : comment je peux utiliser tes lignes de commandes, est ce qu'il l'intégrer dans les applis ou cela peut se lancer sur un process avec un PID ?
    Ce ne sont pas des lignes de commandes mais du code Java...


    Tu n'as pas l'air d'être un développeur mais un administrateur ! Je me trompe ?

    Saches quand même que tu peux utiliser jconsole à distance même si c'est un peu plus complexe ( http://java.sun.com/javase/6/docs/te...ent/agent.html )

    Par contre ce serait plus aux développeurs de debugger l'application ! Non ?

    a++

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Dans un de mes postes, j'ai ecrit que j'etais admin ..
    En fait, j'ai des gars qui utilisent l'appli sans chercher à comprendre le fonctionnement, ils installent et attendent que cela passent.. souvent ca plante.. Et la premiere personne qu'on vient voir c'est l'admin...
    Donc, comme je suis curieux par nature, j'essaie de voir ou cela peut poser probleme .. J'ai pour cela que je viens vous voir..

    Donc, les codes java est ce que je pourrais pas le mettre dans un fichier JAR et lancer un truc du style "java -jar memory.jar" ?

    merci

  10. #10
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par aikinhdo Voir le message
    Dans un de mes postes, j'ai ecrit que j'etais admin ..
    Hum... Il est 13h et je ne suis toujours pas bien réveillé moi


    Citation Envoyé par aikinhdo Voir le message
    Donc, les codes java est ce que je pourrais pas le mettre dans un fichier JAR et lancer un truc du style "java -jar memory.jar" ?
    Ces codes te permettent seulement de surveiller l'application courante, et non pas une autre application comme c'est le cas avec jconsole...

    a++

Discussions similaires

  1. [PL/SQL] Interrogation d'un tableau par JAVA
    Par Titouf dans le forum Oracle
    Réponses: 12
    Dernier message: 08/02/2006, 16h59
  2. WebService Win32 consommé par D2005
    Par SubZero2 dans le forum Delphi .NET
    Réponses: 7
    Dernier message: 05/12/2005, 11h50
  3. Analyseur de mémoire consommé par un soft
    Par chris_wafer_2001 dans le forum C++
    Réponses: 18
    Dernier message: 25/10/2005, 23h30
  4. Accentuation - pages html générées par Java
    Par phoebe dans le forum Linux
    Réponses: 4
    Dernier message: 28/05/2004, 12h49

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