文档章节

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

weiliu007
 weiliu007
发布于 2016/09/29 21:06
字数 416
阅读 138
收藏 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的最高精确度了。

© 著作权归作者所有

共有 人打赏支持
weiliu007
粉丝 14
博文 171
码字总数 84766
作品 0
深圳
程序员
使用System.Diagnostics.Stopwatch对程序的运行时间精确地测量

介绍 每个使用System.Diagnostics命名空间下的Stopwatch类做性能优化的人迟早会遇到一些麻烦。每个人都可以看到了,在同一台电脑相同功能的测试在运行时间上会有25% -30%不同。本文介绍如何使...

王二狗子11
2017/12/19
0
0
使用System.Diagnostics.Stopwatch对程序的运行时间精确地测量

介绍 每个使用System.Diagnostics命名空间下的Stopwatch类做性能优化的人迟早会遇到一些麻烦。每个人都可以看到了,在同一台电脑相同功能的测试在运行时间上会有25% -30%不同。本文介绍如何使...

晨曦之光
2012/03/09
0
0
C#如何测试菠菜平台搭建代码运行时间

菠菜平台搭建测试第一种方式:企 娥:217 1793 408 System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 // 需要测试的代码 .... stopw...

来去买东西
06/30
0
0
Linux下通过gettimeofday函数获取程序段执行时间

在Linux下计算某个程序段执行的时间一般使用gettimeofday函数,此函数的声明在sys/time.h文件中。此函数接收两个结构体参数,分别为timeval、timezone. 两个结构体的声明如下: struct timev...

fengbingchun
05/01
0
0
ORM for Net主流框架汇总与效率测试

框架已经被越来越多的人所关注与使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论)。 ORM框架:Object/Relation Mapping(对象/关系 ...

黄欣怡
2017/06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

web打印控件 LODOP的详细api

web打印控件 LODOP的详细api

wangxujun59
38分钟前
2
0
从一次小哥哥与小姐姐的转账开始, 浅谈分布式事务从理论到实践

分布式事务是个业界难题,在看分布式事务方案之前,先从单机数据库事务开始看起。 什么是事务 事务(Transaction)是数据库系统中一系列操作的一个逻辑单元,所有操作要么全部成功要么全部失...

中间件小哥
40分钟前
6
0
荣登Github日榜!微信最新开源MMKV

MMKV 开源当日即登Github Trending日榜,三日后荣登周榜。MMKV 在腾讯内部开源半年,得到公司内部团队的广泛应用和一致好评。 MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序...

腾讯开源
50分钟前
3
0
前端取色工具:jcpicker

http://annystudio.com/software/colorpicker/#jcp-download

轻量级赤影
52分钟前
1
0
Swift - 将图片保存到相册

import Photos func loadImage(image:UIImage) { UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveImage(image:didFinishSavingWithError:contextInfo:)), ni......

west_zll
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部