Java计算程序代码执行时间的方法小结

 更新时间:2017年11月01日 08:59:32   作者:左正  
这篇文章主要介绍了Java计算程序代码执行时间的方法,结合实例形式总结分析了java采用毫秒数及纳秒数计算程序运行时间的相关操作技巧,需要的朋友可以参考下

本文实例总结了Java计算程序代码执行时间的方法。分享给大家供大家参考,具体如下:

有时候为了排查性能问题,需要记录完成某个操作需要的时间,我们可以使用System类的currentTimeMillis()方法来返回当前的毫秒数,并保存到一个变量中,在方法执行完毕后再次调用 System的currentTimeMillis()方法,并计算两次调用之间的差值,就是方法执行所消耗的毫秒数。

如方法一:

long startTime = System.currentTimeMillis(); //获取开始时间
doSomething(); //测试的代码段
long endTime = System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); //输出程序运行时间

第二种方法是以纳秒为单位计算的(使用SystemnanoTime()方法):

long startTime=System.nanoTime(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.nanoTime(); //获取结束时间
System.out.println("程序运行时间: "+(endTime-startTime)+"ns");

示例代码一:

public static void main(String[]args){
 String str="";
 long starTime=System.currentTimeMillis();
 //计算循环10000的时间
 for(int i=0;i<10000;i++){
  str=str+i;
 }
 long endTime=System.currentTimeMillis();
 long Time=endTime-starTime;
 System.out.println(Time);
 StringBuilder bulider=new StringBuilder("");
 starTime=System.currentTimeMillis();
 for(int j=0;j<10000;j++){
  bulider.append(j);
 }
 endTime=System.currentTimeMillis();
 Time=endTime-starTime;
 System.out.println(Time);
}

示例代码二:

public class Main {
 /**
 * 计算两个时间点直接逝去的毫秒数
 *
 */
 public void computeAndDisplayElapsedTime() {
  long startTime = System.currentTimeMillis();
  for (int i = 0; i < 10; i++) {
   try {
    Thread.sleep(60);
   } catch (InterruptedException ex) {
    ex.printStackTrace();
   }
  }
  long endTime = System.currentTimeMillis();
  float seconds = (endTime - startTime) / 1000F;
  System.out.println(Float.toString(seconds) + " seconds.");
 }
 /**
 * 启动程序
 */
 public static void main(String[] args) {
  new Main().computeAndDisplayElapsedTime();
 }
}

输出结果类似:

```out
0.609 seconds.

更多关于java相关内容感兴趣的读者可查看本站专题:《java日期与时间操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • Java异常处理 Throwable实现方法解析

    Java异常处理 Throwable实现方法解析

    这篇文章主要介绍了Java异常处理 Throwable实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java实现简易HashMap功能详解

    Java实现简易HashMap功能详解

    这篇文章主要介绍了Java实现简易HashMap功能,结合实例形式详细分析了Java实现HashMap功能相关原理、操作步骤与注意事项,需要的朋友可以参考下
    2020-05-05
  • Spring Security基于自定义的认证提供器实现图形验证码流程解析

    Spring Security基于自定义的认证提供器实现图形验证码流程解析

    这篇文章主要介绍了Spring Security基于自定义的认证提供器实现图形验证码,通过本文学习下AuthenticationProvider接口的类关系图,感兴趣的朋友跟随小编一起看看吧
    2021-09-09
  • springboot 定时任务@Scheduled实现解析

    springboot 定时任务@Scheduled实现解析

    这篇文章主要介绍了springboot 定时任务@Scheduled实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java日常练习题,每天进步一点点(26)

    Java日常练习题,每天进步一点点(26)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • 详解Intellij IDEA 2017 debug断点调试技巧(总结)

    详解Intellij IDEA 2017 debug断点调试技巧(总结)

    这篇文章主要介绍了详解Intellij IDEA 2017 debug断点调试技巧(总结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Java中的信息摘要算法MessageDigest类用法详解

    Java中的信息摘要算法MessageDigest类用法详解

    这篇文章主要介绍了Java中的信息摘要算法MessageDigest类用法详解,java.security.MessageDigest类为应用程序提供信息摘要算法的功能,如MD5或SHA-1或SHA-256算法,信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值,需要的朋友可以参考下
    2024-01-01
  • jeefast和Mybatis实现三级联动的示例代码

    jeefast和Mybatis实现三级联动的示例代码

    这篇文章主要介绍了jeefast和Mybatis实现三级联动的示例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Spring MVC--拦截器实现和用户登陆例子

    Spring MVC--拦截器实现和用户登陆例子

    本文主要介绍了Spring MVC--拦截器实现和用户登陆例子,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • java编程实现简单的网络爬虫示例过程

    java编程实现简单的网络爬虫示例过程

    这篇文章主要为大家介绍了如何使用java编程实现一个简单的网络爬虫示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10

最新评论