Différence entre mémoire physique et JVM

Résolu
hayfa1200 Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
hayfa1200 Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai une question svp,quel est la différence entre la mémoire allouée à la JVM et celle de la mémoire physique,existe t'il une relation et merci
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
La mémoire de la JVM est inférieure à la mémoire physique.
Tous les programmes se voient attribuer plus ou moins de mémoire lors du démarrage, la JVM est un programme comme les autres, à part que l'on peut explicitement définir la quantité de mémoire dans les options... mais pas plus que la mémoire physique disponible !
0
hayfa1200 Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   1
 
ok merci KX,
j'ai intégré dans mon application l'API jFreeChart afin d'améliorer la présentation de l'interface,ma question est si je veut superviser la quantité de mémoire physique utilisée ainsi que celle qui est Free est ce que cette API sera le bon choix et merci
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
JFreeChart ne gérera que de la partie affichage des graphiques, mais pour contrôler l'état de la mémoire physique il faudrait déjà que tu puisses accéder à ces informations, et ce n'est pas cette API qui te les fournira... il faudra regarder OperatingSystemMXBean.
0
hayfa1200 Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   1
 
j'ai cherché sur le net et j'ai trouvé cet exemple http://www.koders.com/java/fidAC2CC42CB6511A1240DFE1A6BE1B9D04D34CF001.aspx?s=Pie
jFreeChart capable de montrer l'état de mémoire est ce qu'il s'agit de la JVM ou de la mémoire physique et merci encore KX
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Il suffit de regarder le code pour le savoir :

public void actionPerformed(ActionEvent event) {
    long f = Runtime.getRuntime().freeMemory();
    long t = Runtime.getRuntime().totalMemory();
    addTotalObservation(t);
    addFreeObservation(f);
}

C'est donc la mémoire de la JVM qui est affiché, et non la mémoire physique, mais ce n'est pas une surprise parce que récupérer la mémoire physique est plus compliqué vu qu'il faut interroger le système, mais je t'ai donné hier un lien qui te permettra de modifier cette portion de code.
0
hayfa1200 Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   1
 
bonjour KX,
merci pour l'aide mais j'ai une autre question,j'ai une idée qui consiste à superviser la mémoire physique sous forme d'un timeline (en réel) en représentant ça avec jFreechart,est ce que c'est possible?et si celle ci est faisable comment je peut le faire et merci encore une fois
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Entre le code que tu as trouvé, et le lien que je t'ai donné hier, tu as juste à modifier la portion de code que je t'ai indiqué, pour arriver à tes fins...

import com.sun.management.OperatingSystemMXBean;

public void actionPerformed(ActionEvent event)
{
    OperatingSystemMXBean operatingSystem = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();

    long f = operatingSystem.getFreePhysicalMemorySize();
    long t = operatingSystem.getTotalPhysicalMemorySize();
    addTotalObservation(t);
    addFreeObservation(f);
}

Remarque : il faudra inclure la librairie rt.jar que tu trouveras dans le dossier jre/lib de ta JDK
0