第一种使用spring的java
import java.util.concurrent.TimeUnit; import org.springframework.util.StopWatch; public class Test { public static void main(String[] args) throws InterruptedException { testSpringStopwatch(); } private static void testSpringStopwatch() throws InterruptedException { StopWatch s = new StopWatch(); s.start(); TimeUnit.MILLISECONDS.sleep(88); s.stop(); System.out.println(s.getTotalTimeMillis()); System.out.println(s.getTotalTimeSeconds()); } }
第二种使用方法(org.apache.commons.lang3.time.StopWatch): spring
package testService; import java.util.concurrent.TimeUnit; import org.apache.commons.lang3.time.StopWatch; public class Test { public static void main(String[] args) throws InterruptedException { testSpringStopwatch(); } private static void testSpringStopwatch() throws InterruptedException { StopWatch s = new StopWatch(); s.start(); TimeUnit.MILLISECONDS.sleep(88); s.stop(); System.out.println("纳秒:"+s.getNanoTime()); System.out.println("毫秒:"+s.getTime()); } }
第三种使用方法(guava):apache
package testService; import java.util.concurrent.TimeUnit; import com.google.common.base.Stopwatch; public class Test { public static void main(String[] args) throws InterruptedException { testSpringStopwatch(); } private static void testSpringStopwatch() throws InterruptedException { Stopwatch stopwatch = Stopwatch.createStarted(); // Stopwatch stopwatch = Stopwatch.createUnstarted().start(); 或者用这种,不推荐用new Stopwatch(); TimeUnit.MILLISECONDS.sleep(88); long nanos = stopwatch.elapsed(TimeUnit.NANOSECONDS); long mills = stopwatch.elapsed(TimeUnit.MILLISECONDS); long seconds = stopwatch.elapsed(TimeUnit.SECONDS); System.out.println(mills); System.out.println(nanos); System.out.println(seconds); } }
读取Stopwatch结果:
在结束计时后下一步就是读取计时结果了。Stopwatch类提供了如下属性:google
应当根据计时任务的状况选择其中的一个属性。在咱们的示例程序中,Elapsed属性提供了须要的精确度,用它来输出通过的微秒数
。这也是TimeSpan的最高精确度了。spa