为什么80%的码农都做不了架构师?>>>   

在Java中,用System.currentTimeMillis()来测量时间最方便。
你要做的是在某些操作之前获取到时间,然后在这些操作之后你想要测量时间,算出时间差。下面是一个例子:

1 long startTime = System.currentTimeMillis();
2 callOperationToTime();
3 long endTime   = System.currentTimeMillis();
4 long totalTime = endTime - startTime;

现在变量totalTime将包含执行callOperationToTime()方法所需要的全部时间。

反复操作

由于System.currentTimeMillis()没有返回精准的时间,所以不止一次地去执行测量操作是个不错的主意。也许10次、100次或者1000次,甚至更多。这样由于大粒度时间值(该值并不是每毫秒都在变化着)而导致的非精准时间将趋于平稳。(原文:That way inaccuracy caused by large grained time values (values that does not change every millisecond) is leveled out.)
反复执行很多次测量操作的另一个很好的理由是,允许Java虚拟机去装载那些测量操作代码的classes,即时编译它,或许还能对它进行优化。(译者注JVM中的JIT会将字节代码中经常使用到的片段编译为机器码,带来性能提升。有关JIT有篇不错的文章介绍,地址在这)

Timer类

前文所列出的计算方法是相当繁琐的并且沉闷,我们可以将它封装到一个Timer类中,下面是大概的例子:

01 public class Timer {
02
03   private long startTime = 0;
04   private long endTime   = 0;
05
06   public void start(){
07     this.startTime = System.currentTimeMillis();
08   }
09
10   public void end() {
11     this.endTime   = System.currentTimeMillis(); 
12   }
13
14   public long getStartTime() {
15     return this.startTime;
16   }
17
18   public long getEndTime() {
19     return this.endTime;
20   }
21
22   public long getTotalTime() {
23     return this.endTime - this.startTime;
24   }
25 }

下面是个如何使用Timer类的例子:

1 Timer timer = new Timer();
2 timer.start();
3 callOperationToTime();
4 timer.end();
5 long totalTime = timer.getTotalTime();

转载于:https://my.oschina.net/gaowm/blog/510968

Java Date Time 教程-时间测量相关推荐

  1. Java Date Time 教程

    原文链接 作者:Jakob Jenkov  译者:魏嘉鹏 目录 Java 8 Date Time API Java 7 Date Time API 当你初次尝试弄明白怎么去使用Java的date ti ...

  2. Java Date Time 教程-java.sql.Date

    Java的java.sql.Date类在JDBC API中被使用.如果你需要在java.sql.PreparedStatement上设置日期或者从java.sql.ResultSet获取日期,你将会和 ...

  3. Java Date Time 教程-java.sql.Timestamp

    Java的java.sql.Timestamp类在JDBC API中被使用.如果你需要在java.sql.PreparedStatement上设置日期+时间或者从java.sql.ResultSet获 ...

  4. Java Date Time 教程-System.currentTimeMillis()

    原文链接 作者:Jakob Jenkov  译者:魏嘉鹏 静态方法System.currentTimeMillis() 返回从1970年1月1日到现在的总毫秒数.返回类型为long.下面是一个例子: ...

  5. Java Date类型数据 时间加一天,加一小时,加一分,加一秒

    首先获取当前的时间 Date date = new Date();System.out.println(date); 输出: Sun Jun 19 18:25:20 CST 2022 将date转换为 ...

  6. java date 格式化_3种 Springboot 全局时间格式化方式,别再写重复代码了

    原文:3种 Springboot 全局时间格式化方式,别再写重复代码了 掘金 作者: 程序员内点事 时间格式化在项目中使用频率是非常高的,当我们的API接口返回结果,需要对其中某一个date字段属性进 ...

  7. 5、时间日期的处理:Java Date类、Calendar类详解

    在 Java 中获取当前时间,可以使用 java.util.Date 类和 java.util.Calendar 类完成.其中,Date 类主要封装了系统的日期和时间的信息,Calendar 类则会根 ...

  8. java date 操作类_JAVA时间操作类常用方法汇总

    1.JAVA中日期的获取.设置和格式化 (1)JAVA提供了3个日期类:Date.Calendar和DateFormat. Date()方法主要用于创建日期对象并获取日期: Calendar()方法主 ...

  9. 【Java】JDK1.8新特性Date类----日期/时间改进

    一.为什么我们需要新的Java日期/时间API? 1.8之前JDK自带的日期处理类非常不方便,我们处理的时候经常是使用的第三方工具包,比如commons-lang包等.不过1.8出现之后这个改观了很多 ...

最新文章

  1. 一篇文章彻底了解清楚什么是负载均衡
  2. python 小说爬虫_从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载
  3. 加油卡 格式判断 java_JAVA实验_题目8
  4. Nodejs开发框架Express3.0开发手记
  5. 数据体系建设的开端,该如何规划平台?
  6. 51CTO网站博客改版意见寻求
  7. java代码块执行顺序_JAVA代码块执行顺序分析测试
  8. verilog实现多周期处理器之——(二)第一条指令ori的实现
  9. python定时任务之cron_Python定时任务框架APScheduler 3.0.3 Cron示例
  10. Android 3D 编程:索引
  11. Android 硬编码
  12. ftps协议怎么连接服务器,浅谈 FTP、FTPS 与 SFTP的区别
  13. redis配置(2)
  14. mysql中各种类型的锁
  15. Elasticsearch集群的脑裂问题
  16. 实践中的重构19_脱裤子放屁
  17. centos下tomat设置开机启动
  18. mysql 通过客户端执行now()函数,时差为8小时
  19. HI+AI|吾来助力惠氏CRM喜提「金耳唛杯」
  20. 吃鸡是python写的吗_吃鸡游戏也是用Python写的?学了Python,120个月年终奖向你招手~...

热门文章

  1. 机器学习之 weka学习(五)示例用法
  2. css font简写
  3. C#控件访问调用它的父级页面
  4. 算法入门经典 第三章
  5. vSphere Client 编辑虚拟机属性的问题
  6. [置顶] Android开发者官方网站文档 - 国内踏得网镜像
  7. oracle存储过程+游标处理select数据
  8. [Buzz Today]2012.08.08
  9. SQL Server 数据库维护脚本合集[005]-删除数据库所有用户表
  10. charles使用说明(基于mac)