Connaître la mémoire libre de la JVM?

Connaître la mémoire libre de la JVM? - Java - Programmation

Marsh Posté le 31-07-2006 à 10:41:46    

Bonjour,
 
Je travaille sur un serveur Tomcat, j'ai une appli Java installée dessus et je voudrais connaître pour un test en endurance l'état de la mémoire allouée à la JVM.
Pour cela je pense faire un script qui relève cette valeur toutes les x minutes.
 
Je pensais utiliser la méthode freeMemory() de la classe Runtime... mais les valeurs que ça me renvoie ne concordent pas avec les infos que me donne Tomcat Manager !?!
 
Comment puis-je connaitre la mémoire libre via un programme java?
(peut être que j'utilise mal freeMemory()...)  
 
Merci d'avance.
Pap.

Reply

Marsh Posté le 31-07-2006 à 10:41:46   

Reply

Marsh Posté le 31-07-2006 à 13:36:19    

tu peux simplement te connecter via jmx avec jconsole, ou, si tu es toujours en java1.4, utiliser un profiler.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 31-07-2006 à 14:29:56    

// Mémoire totale allouée
long totalMemory = Runtime.getRuntime().totalMemory();
 
// Mémoire utilisée
long currentMemory = totalMemory-Runtime.getRuntime().freeMemory();

Message cité 1 fois
Message édité par lonely le 31-07-2006 à 14:30:16
Reply

Marsh Posté le 31-07-2006 à 14:50:07    

lonely a écrit :

// Mémoire totale allouée
long totalMemory = Runtime.getRuntime().totalMemory();
 
// Mémoire utilisée
long currentMemory = totalMemory-Runtime.getRuntime().freeMemory();


 
justement, en utlisant cette technique je n'obtiens pas de résultats cohérents (en tout cas, très différents de ce que me donne Tomcat Manager).
Je vais regarder du côté des profiler puisque je suis toujours sous java1.4

Reply

Marsh Posté le 31-07-2006 à 16:07:59    

Regardes http://bugs.sun.com/bugdatabase/vi [...] id=4686462
et en particulier le maxMemory :
La memoire dispo de la JVM serait : maxMemory - totalMemory - freeMemory
 
http://www.progx.org/index.php?sec [...] newsid=314
http://www.progx.org/index.php?sec [...] newsid=315

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed