Я написал программу java, которая может компилировать, выполнять другие отправленные коды (cpp, java). Я делаю это, используя класс процессов java. Класс процесса вызывает g++
или java compiler
. Для какой-то цели мне нужно знать, каково фактическое время выполнения этого процесса или сколько времени требуется для выполнения кода.Как измерить фактическое время работы Java-процесса?
process.waitFor(2000, TimeUnit.MILLISECONDS)
Этот процесс ждет 2000 milisecond, но если процесс осуществляется менее чем за 2000 milisecond, как я могу знать, что это время, когда процесс происходит?
====== Обновление ===== В настоящее время я делаю это как старый способ.
StopWatch.Start();
process.waitFor(dto.getTimeLimit(), TimeUnit.MILLISECONDS)
long timeEplased = StopWatch.Stop();
StopWatch
мой написал класс, вычислить время, прошедшее с использованием System.nanoTime()
.
Вы можете это сделать [как это] (http://stackoverflow.com/questions/8255738/is-there-a- секундомер в java) или использовать существующие инструменты, такие как [этот] (https://google.github.io/guava/releases/19.0/api/docs/com/google/common/base/Stopwatch.html) – alfasin
@ альфасин действительно? В настоящее время я это делаю. Есть ли более разумный способ? Я собираюсь обновить свой вопрос, что я делаю прямо сейчас. – seal
"действительно?" - да. Это простая задача, сделав ее «более умной», и вы наверняка закончите чрезмерно сложную реализацию. Держите его простой почки. – alfasin