AVA MEMOIRE DEFINI / MEMOIRE UTILISEE

Résolu
cs_roro73 Messages postés 2 Date d'inscription vendredi 5 août 2005 Statut Membre Dernière intervention 14 avril 2008 - 14 avril 2008 à 15:31
cs_roro73 Messages postés 2 Date d'inscription vendredi 5 août 2005 Statut Membre Dernière intervention 14 avril 2008 - 14 avril 2008 à 16:08
Bonjour à tous,


alors voila je vous expose mon problème :


ayant eu quelques soucis de mémoire sur un outils, j'ai tout d'abord
commencé par cleaner des parties de code afin d'optimiser au mieux mon
application.

Les résultats se sont fait sentir rapidement, surtout par un gain de temps au démarrage de l'appli.


Pour pousser un peux plus la stabilité de l'outils, j'ai augmenté la taille mémoire via cette commande : java -Xmx100m (puis 250).


Une question me reste tout de même toujours sans réponse.


Admettons que je définisse la taille à 100, via le Runtime définit ci-dessous

Runtime run = Runtime.getRuntime();

run.totalMemory()


la taille "total" prendra environ 60m.


Ensuite, je défini la taille pour la JVM à 250m, mon prog va utiliser à ce moment 100m environ.

Alors que j'ai juste modifié la mémoire dispo.


Est-ce que JAVA compresse ces objets selon la mémoire disponible ? ce
qui expliquerait que comme dans le deuxieme cas nous avons plus de
place, JAVA s'étale.


Est-ce que cela peut provenir d'autre chose ?


Plus j'augmente l'espace mémoire, plus JAVA prend ses aises.


Merci d'avance de vos réponses, car je n'ai pas trouvé de sujet parlant de ceci sur de nombreux sites.


---

Romain

2 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
14 avril 2008 à 16:04
Salut:

Logiquement lorsque tu lance une application Java, la machine virtuelle Java se lance aussi pour interpréter le bytecode et exécuter l'application.

Non pas seulement, la JVM lance le collecteur de miettes (Garbage Collector) pour faire le ménage des objets non référencés.

Donc la mémoire que tu viens de définir se partage en l'application et la JVM.
3
cs_roro73 Messages postés 2 Date d'inscription vendredi 5 août 2005 Statut Membre Dernière intervention 14 avril 2008
14 avril 2008 à 16:08
Slt !

Merci pour ta réponse.

Ok, donc la mémoire se partage entre l'appli et la JVM, ca me parait donc normal qu'elle s'accroit au fur et à mesure que j'augmente la valeur.

Cool, c'est plus clair ainsi.

Merci

Romain
0
Rejoignez-nous