Stopwatch 例子性能测试- 测试代码执行的时间

第一种使用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对象,表示计时时间间隔;
  • ElapsedMilliseconds:返回计时通过的微秒数,精确度稍差,适合于稍长一点的计时;
  • ElapsedTicks: 返回计时通过的计时器刻度(timer tick)数。计时器刻度是Stopwatch对象可能的最小量度单位。
  • 计时器刻度时间的长度由特定的计算机和操做系统肯定。Stopwatch对象的 Frequency静态字段的值表示一秒所包含的计时器刻度数
  • 。注意它与TimeSpan的Ticks属性所用的时间单位的区别。

应当根据计时任务的状况选择其中的一个属性。在咱们的示例程序中,Elapsed属性提供了须要的精确度,用它来输出通过的微秒数
。这也是TimeSpan的最高精确度了。spa

相关文章
相关标签/搜索