Время с момента запуска JVM
Есть ли способ узнать время с момента запуска JVM?
Конечно, кроме запуска таймера где-то ближе к началу main
, потому что в моем сценарии я пишу библиотечный код и требование, чтобы что-то вызывалось сразу после запуска, является слишком обременительным.
Ответы
Ответ 1
Используйте этот фрагмент:
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
Ответ 2
Время запуска 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
Ответ 3
Начиная с Java 5, вы можете использовать JMX, чтобы найти это. Проверьте "" Использование платформы MBeanserver ", чтобы узнать подробности. bean, который вы ищете, это bean, называемый" java.lang: type = Runtime". Атрибут StartTime дает вам время запуска JVM, а атрибут Uptime указывает время работы JVM.
Вы можете получить ссылку на Runtime bean, выполнив этот код:
ManagementFactory.getRuntimeMXBean();
Ответ 4
Если ваша программа jvm работает в Linux, вы можете просмотреть использование startTime ps
ps -p <pid> -o stime,etime
Ответ 5
Возможно, стоит упомянуть, что если вы не хотите писать какой-либо код, запустите jconsole из каталога java bin и нажмите "Сводка VM" и просмотрите значения времени Uptime и Process CPU.