JVMが起動してからの時間を調べる方法はありますか?
もちろん、タイマーをmain
の始めの近くのどこかで開始する以外は、私のシナリオではライブラリコードを記述しており、起動直後に何かを呼び出すという要件は非常に面倒です。
このスニペットを使用してください:
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 を参照してください
次のコードで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
linuxでjvmプログラムを実行している場合は、startTimeの使用psを表示できます。
ps -p <pid> -o stime,etime
Java 5から始めて、JMXを使用してこれを見つけることができます。詳細は、「 sing the platform MBeanserver 」を参照してください。探しているBean 「Java.lang:type = Runtime」というBeanです。属性StartTimeは、JVMが開始された時間を示し、Uptime属性は、JVMの稼働時間を示します。
次のコードを実行すると、ランタイムBeanへの参照を取得できます。ManagementFactory.getRuntimeMXBean();
おそらく、コードを記述したくない場合は、Java binディレクトリーからjconsoleを実行し、VM要約をクリックして、稼働時間とプロセスを確認してください。 CPU時間の値。