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 :

Garbage collector VS Utilisation mémoire


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut Garbage collector VS Utilisation mémoire
    Bonjour,

    j'ai modifié les vm arguments de mon RCP, pour gérer l'utilisation de sa mémoire. Je peux donc voir l'évolution de la gestion de la mémoire via l'icône du Garbage Collector. De plus, la mémoire utilisée diminue bien quand je le lance moi-même.

    Cependant, dans le gestionnaire des tâches de Windows, l'Utilisation mémoire de mon RCP ne diminue jamais quand je vide le Garbage collector, il ne fait qu'augmenter tout au long de l'utilisation de mon RCP.

    Je ne comprend pas ce comportement, car je pensais que le Garbage collector et l'Utilisation mémoire étaient liés, or je ne vois pas de répercutions dans le dernier.


    Quelqu'un saurait-il s'il y a bien un lien entre les deux, et si oui pourquoi cela ne se répercute pas?

    Merci pour votre aide,
    David

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bonjour,
    Citation Envoyé par DaveShot Voir le message
    Cependant, dans le gestionnaire des tâches de Windows, l'Utilisation mémoire de mon RCP ne diminue jamais quand je vide le Garbage collector, il ne fait qu'augmenter tout au long de l'utilisation de mon RCP.
    Oui, ça c'est le fonctionnement de la JVM qui veut ça...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  3. #3
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut
    Merci pour ta réponse.

    Cependant, j'ai du mal a voir l'intérêt de pouvoir libérer les zones de mémoires inutilisées par l'application, sans que cela impacte l'utilisation mémoire. En effet, très rapidement, à l'utilisation de mon application, l'utilisation mémoire augmente jusqu'à être très proche de sa limite max.
    Est-ce finalement un comportement normale oubien forcément un problème de fuite mémoire?

    Cdlt,
    David.

  4. #4
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Euh... je ne suis pas sûr de saisir ce que tu veux dire exactement mais ce qu'il faut savoir c'est qu'une application (Java ou non) a besoin qu'on lui alloue un bloc mémoire, sur lequel elle va pouvoir compter pour s'exécuter et manipuler les données dont elle a besoin.

    Si une application Java a besoin d'instancier des objets, elle tape dans la mémoire allouée (bloc mémoire maximum Xmx). Si ce bloc mémoire n'est pas suffisant, alors on obtient un OutOfMemory Error. Cependant, on peut segmenter l'allocation de la mémoire Xmx de manière à ne pas réquisitionner la totalité de la Xmx dès le départ, surtout si on sait que théoriquement elle n'est pas nécessaire. On paramètre pour cela la valeur Xms.

    Les segments Xms une fois alloués ne sont pas désalloués (en fait ça dépend de l'OS) mais théoriquement ils devraient l'être, ce serait assez logique.

    Quoi qu'il en soit, la Xmx est la mémoire que l'on estime être suffisante pour le fonctionne de l'application. Si au cours de son fonctionnement, l'application arrive aux limites, c'est soit parce que les objets créés devenus inutiles ne peuvent pas être garbage collectés car toujours référencés quelque part, soit parce que la quantité de mémoire n'est effectivement pas suffisante pour le fonctionnement normal de l'application.

    La gestion de la mémoire est complexe pour beaucoup de raisons, donc si à un moment donné, une application a eu besoin de plusieurs blocs Xms, cela veut dire que potentiellement elle pourra de nouveau en avoir besoin et donc l'OS préfère la lui laisser une fois prise, plutôt que cela finisse par causer des problèmes aléatoires... Enfin voilà ce que moi j'en conclus mais il est vrai que je ne suis pas expert dans ce domaine

    Je laisse d'ailleurs le soin à d'autres de confirmer ou infirmer mes dires
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

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

Discussions similaires

  1. Garbage Collector ne libère pas de mémoire
    Par Nico2050 dans le forum Général Java
    Réponses: 4
    Dernier message: 15/11/2012, 00h21
  2. Optimisation mémoire - Garbage collector
    Par MisterMok dans le forum Framework .NET
    Réponses: 1
    Dernier message: 07/11/2011, 14h31
  3. [Gestion mémoire] Garbage collector, mais quand intervient-t-il ?
    Par jldgbu dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 01/05/2008, 17h55
  4. garbage collector et finalize() Comment les utiliser ?
    Par HighSchool2005 dans le forum Langage
    Réponses: 17
    Dernier message: 03/04/2007, 15h25
  5. [Language]Garbage collector
    Par GETah dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2005, 15h18

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