如何获得自上次拆分以来的最后一次时间间隔?
how to get last time interval since last split?
我想运行一个秒表从我的程序开始
并记录一些时间间隔的时间间隔。
我应该选择哪种秒表?
import com.google.common.base.Stopwatch;
org.apache.commons.lang.time.StopWatch
例如:
Start -----> split 1 (1:00 min from split 0) ----> split 2 (0:30 from split 1) --> split 3 (0:35 from split 2)
而不是
Start -----> split 1 (1:00 min from start) ----> split 2 (0:30 from from start) ----> split 3 (0:35 from from start)
还有比这更优雅的方法吗?
stopWatch.split();
stopWatch.getSplitTime() - lastSpiltTime;
last splitTime = stopWatch.getSplitTime();
不幸的是,这是唯一的方法。我有同样的需求,但 Apache StopWatch 对此没有原生支持。
我的做法略有不同:
private void lapWatchAndLog( StopWatch watch, String messageForLap ) {
watch.stop();
LOGGER.info( String.format( "Time: [%s] %s", watch.getTime(), messageForLap ) );
watch.reset();
watch.start();
}
或者你可以使用这个:
private long stopWatchGap(StopWatch stopWatch) {
try {
stopWatch.stop();
return stopWatch.getTime();
} finally {
stopWatch.reset();
stopWatch.start();
}
}
刚好到return差距值
我想运行一个秒表从我的程序开始
并记录一些时间间隔的时间间隔。
我应该选择哪种秒表?
import com.google.common.base.Stopwatch;
org.apache.commons.lang.time.StopWatch
例如:
Start -----> split 1 (1:00 min from split 0) ----> split 2 (0:30 from split 1) --> split 3 (0:35 from split 2)
而不是
Start -----> split 1 (1:00 min from start) ----> split 2 (0:30 from from start) ----> split 3 (0:35 from from start)
还有比这更优雅的方法吗?
stopWatch.split();
stopWatch.getSplitTime() - lastSpiltTime;
last splitTime = stopWatch.getSplitTime();
不幸的是,这是唯一的方法。我有同样的需求,但 Apache StopWatch 对此没有原生支持。
我的做法略有不同:
private void lapWatchAndLog( StopWatch watch, String messageForLap ) {
watch.stop();
LOGGER.info( String.format( "Time: [%s] %s", watch.getTime(), messageForLap ) );
watch.reset();
watch.start();
}
或者你可以使用这个:
private long stopWatchGap(StopWatch stopWatch) {
try {
stopWatch.stop();
return stopWatch.getTime();
} finally {
stopWatch.reset();
stopWatch.start();
}
}
刚好到return差距值