web-dev-qa-db-ja.com

JVMが起動してからの時間

JVMが起動してからの時間を調べる方法はありますか?

もちろん、タイマーをmainの始めの近くのどこかで開始する以外は、私のシナリオではライブラリコードを記述しており、起動直後に何かを呼び出すという要件は非常に面倒です。

52
flybywire

このスニペットを使用してください:

long jvmUpTime = ManagementFactory.getRuntimeMXBean().getUptime();

または:

long jvmStartTime = ManagementFactory.getRuntimeMXBean().getStartTime();

これは、JVMの稼働時間を取得する正しい方法です。

詳細については、 http://Java.Sun.com/j2se/1.5.0/docs/api/Java/lang/management/RuntimeMXBean.html を参照してください

79
Yuval Adam

次のコードでJVMの開始時間を取得できます。

import Java.lang.management.ManagementFactory;
  import Java.lang.management.RuntimeMXBean;
  ...
  RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
  long uptimeInMillis = runtimeMXBean.getUptime();

もっと見る http://Java.Sun.com/javase/6/docs/api/Java/lang/management/RuntimeMXBean.html

12

linuxでjvmプログラムを実行している場合は、startTimeの使用psを表示できます。

ps -p <pid> -o stime,etime 
3
Shawyeok

Java 5から始めて、JMXを使用してこれを見つけることができます。詳細は、「 sing the platform MBeanserver 」を参照してください。探しているBean 「Java.lang:type = Runtime」というBeanです。属性StartTimeは、JVMが開始された時間を示し、Uptime属性は、JVMの稼働時間を示します。

次のコードを実行すると、ランタイムBeanへの参照を取得できます。ManagementFactory.getRuntimeMXBean();

2
Gerco Dries

おそらく、コードを記述したくない場合は、Java binディレクトリーからjconsoleを実行し、VM要約をクリックして、稼働時間とプロセスを確認してください。 CPU時間の値。

0
Oversteer