文档章节

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

weiliu007
 weiliu007
发布于 2016/09/29 21:06
字数 416
阅读 158
收藏 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
码字总数 84810
作品 0
深圳
程序员
私信 提问
获取C#中方法的执行时间及其代码注入

  在优化C#代码或对比某些API的效率时,通常需要测试某个方法的运行时间,可以通过DateTime来统计指定方法的执行时间,也可以使用命名空间System.Diagnostics中封装了高精度计时器QueryPe...

Minotauros
11/08
0
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

没有更多内容

加载失败,请刷新页面

加载更多

移动端Appium自动化测试框架的优势

众所周知,现在市面上的移动端操作系统已被Android和IOS占领,其中Android的份额更是在80%以上。那么面对市面上林林总总的自动化测试框架和工具,为什么说Appium在自动化测试框架的统治级优势...

程序猿拿Q
20分钟前
1
0
设计模式 之 观察者模式

设计模式 之 观察者模式 场景 场景比较简单,当一个对象的状态发生改变时,自动通知所有依赖(或观察)它的对象。 比如:发布/订阅 原理:发布者存储N个订阅者的对象信息,当发布者发布消息时...

GMarshal
24分钟前
1
0
linux 常用

netstat -tunlp |grep 8080 查看8080 占用 netstat -tunlp 用于查看所有的端口号的进程情况

west_coast
28分钟前
2
0
Bytom信息上链教程

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ##用比原链(Bytom)实现信息上链 很多了解比原链的都知道,比原链是专注...

比原链Bytom
34分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部