temps depuis que JVM a commencé
Question
Existe-t-il un moyen de connaître le temps écoulé depuis le démarrage de la machine virtuelle Java?
Bien sûr, mis à part le démarrage d'une minuterie vers le début de main
, car dans mon scénario, j'écris le code de la bibliothèque et l'exigence d'appeler immédiatement après le démarrage est trop lourde.
La solution
Utilisez cet extrait:
long jvmUpTime = ManagementFactory.getRuntimeMXBean().getUptime();
ou:
long jvmStartTime = ManagementFactory.getRuntimeMXBean().getStartTime();
C’est la bonne méthode de récupération du temps d’activation de la machine virtuelle Java.
Pour plus d'informations, voir http: //java.sun.com/j2se/1.5.0/docs/api/java/lang/management/RuntimeMXBean.html
Autres conseils
Vous pouvez obtenir l'heure de début de la machine virtuelle Java dans le code suivant:
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
...
RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
long uptimeInMillis = runtimeMXBean.getUptime();
Voir plus de http: // java .sun.com / javase / 6 / docs / api / java / lang / management / RuntimeMXBean.html
si votre programme jvm s'exécutant sous linux, vous pouvez afficher l'utilisation de startTime ps
.ps -p <pid> -o stime,etime
À partir de Java 5, vous pouvez utiliser JMX pour le savoir. Vérifiez les " Utilisation du serveur MBeanserver de la plateforme . ; pour plus de détails. Le bean que vous recherchez est le bean appelé "java.lang: type = Runtime". L'attribut StartTime vous indique l'heure à laquelle la machine virtuelle a été démarrée et l'attribut Uptime vous indique le temps de disponibilité de la machine virtuelle.
Vous pouvez obtenir une référence au bean Runtime en exécutant ce code:
ManagementFactory.getRuntimeMXBean ();
Il convient peut-être de mentionner que si vous ne souhaitez écrire aucun code, exécutez jconsole à partir du répertoire java bin et cliquez sur VM Summary (Résumé de la machine virtuelle) pour afficher les valeurs de temps Uptime et Process CPU.