Java计算程序代码执行时间的方法小结
时间:2019-04-07
本文章向大家介绍Java计算程序代码执行时间的方法小结,主要包括Java计算程序代码执行时间的方法小结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例总结了Java计算程序代码执行时间的方法。分享给大家供大家参考,具体如下:
有时候为了排查性能问题,需要记录完成某个操作需要的时间,我们可以使用System类的currentTimeMillis()
方法来返回当前的毫秒数,并保存到一个变量中,在方法执行完毕后再次调用 System的currentTimeMillis()方法,并计算两次调用之间的差值,就是方法执行所消耗的毫秒数。
如方法一:
long startTime = System.currentTimeMillis(); //获取开始时间 doSomething(); //测试的代码段 long endTime = System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); //输出程序运行时间
第二种方法是以纳秒为单位计算的(使用System的nanoTime()
方法):
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教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- python中round函数如何使用
- PHP array_reduce()函数的应用解析
- php微信公众号开发之简答题
- php5.x禁用eval的操作方法
- php微信公众号开发之图片回复
- php微信公众号开发之答题连闯三关
- swoole_process实现进程池的方法示例
- golang实现php里的serialize()和unserialize()序列和反序列方法详解
- keras 实现轻量级网络ShuffleNet教程
- Python应用实现处理excel数据过程解析
- Python实现爬取并分析电商评论
- python中怎么表示空值
- Keras自动下载的数据集/模型存放位置介绍
- Keras 切换后端方式(Theano和TensorFlow)
- python 字符串的驻留机制及优缺点