计算程序运行时间

朱雀 2022-09-30 12:53 374阅读 0赞

在编写完程序后,通常都会对程序进行性能测试,比较常用的方法就是计算完成某个任务所花费的时间。System类提供了获得当前时间的方法,但是其单位是毫秒,阅读不方便。本实例将其转换成方便的阅读格式。实例运行效果如图

![Image 1][]

System类包含一些有用的类字段和方法,它不能被实例化。在System类提供的设施中,有标准输入、标准输出和错误输出流,对外部定义的属性和环境变量的访问,加载文件和库的方法,还有快速复制数组的一部分的实用方法。本实例使用其currentTimeMillis()方法获得系统当前时间,该方法的声明如下:

  1. public static long currentTimeMillis()

技巧:如果需要得到更精确的时间可以使用nanoTime()方法,该方法的时间单位是纳秒。

1)编写round()方法,该方法用来将浮点数从小数点后第二位进行四舍五入。代码如下:

  1. public static double round(double value) {
  2. return Math.round(value * 10.0) / 10.0; //利用Math类的round方法进行四舍五入计算
  3. }

(2)编写getElapsedText()方法,它可以将默认的毫秒单位转换成容易阅读的形式。代码如下:

  1. package com.mingrisoft.system;
  2. public class Timing {
  3. public static double round(double value) {
  4. return Math.round(value * 10.0) / 10.0;// 利用Math类的round方法进行四舍五入计算
  5. }
  6. public static String getElapsedText(long elapsedMillis) {
  7. if (elapsedMillis < 60000) {
  8. double unit = round(elapsedMillis / 1000.0);// 将时间转换成秒
  9. return unit + "秒";// 在转换完的时间后增加单位
  10. } else if (elapsedMillis < 60000 * 60) {
  11. double unit = round(elapsedMillis / 60000.0);// 将时间转换成分
  12. return unit + "分";// 在转换完的时间后增加单位
  13. } else if (elapsedMillis < 60000 * 60 * 24) {
  14. double unit = round(elapsedMillis / (60000.0 * 60));// 将时间转换成时
  15. return unit + "时";// 在转换完的时间后增加单位
  16. } else {
  17. double unit = round(elapsedMillis / (60000.0 * 60 * 24));// 将时间转换成天
  18. return unit + "天";// 在转换完的时间后增加单位
  19. }
  20. }
  21. public static void main(String[] args) {
  22. long begin = System.currentTimeMillis();
  23. System.out.println("程序开始运行时间:" + begin);
  24. for (int i = 0; i < 1000000000; i++) {
  25. Math.random();
  26. }
  27. long end = System.currentTimeMillis();
  28. System.out.println("程序结束运行时间:" + end);
  29. System.out.println("程序运行时间:" + getElapsedText(end - begin));
  30. }
  31. }

心法领悟:currentTimeMillis()方法的使用。

该方法的精度与底层操作系统有关,如很多操作系统使用的时间是以几十毫秒为单位的。如果读者需要非常精确的时间,可以使用nanoTime()方法。

[Image 1]:

发表评论

表情:
评论列表 (有 0 条评论,374人围观)

还没有评论,来说两句吧...

相关阅读

    相关 计算程序运行时间

    在编写完程序后,通常都会对程序进行性能测试,比较常用的方法就是计算完成某个任务所花费的时间。System类提供了获得当前时间的方法,但是其单位是毫秒,阅读不方便。本实例将其转换

    相关 C#计算程序运行时间

      通过系统函数System.DateTime.Now获取运行前的当前时间和运行后的当前时间,然后通过DateTime类型本身自带的Subtract方法(从此实例中减去指定时间