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