cs_roro73
Messages postés2Date d'inscriptionvendredi 5 août 2005StatutMembreDernière intervention14 avril 2008
-
14 avril 2008 à 15:31
cs_roro73
Messages postés2Date d'inscriptionvendredi 5 août 2005StatutMembreDernière intervention14 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.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 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.