Stopwatch 例子性能测试- 测试代码执行的时间
Stopwatch 例子性能测试- 测试代码执行的时间
weiliu007 发表于1年前
Stopwatch 例子性能测试- 测试代码执行的时间
  • 发表于 1年前
  • 阅读 106
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

第一种使用spring的

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):         

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):

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类提供了以下属性:

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

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

共有 人打赏支持
粉丝 14
博文 169
码字总数 84766
×
weiliu007
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: