计算程序运行时间

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

public static long currentTimeMillis()

技巧:如果需要得到更精确的时间可以使用nanoTime()方法,该方法的时间单位是纳秒。 (1)编写round()方法,该方法用来将浮点数从小数点后第二位进行四舍五入。代码如下:

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

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

package com.mingrisoft.system;

public class Timing {
    public static double round(double value) {
        return Math.round(value * 10.0) / 10.0;// 利用Math类的round方法进行四舍五入计算
    }
    
    public static String getElapsedText(long elapsedMillis) {
        if (elapsedMillis < 60000) {
            double unit = round(elapsedMillis / 1000.0);// 将时间转换成秒
            return unit + "秒";// 在转换完的时间后增加单位
        } else if (elapsedMillis < 60000 * 60) {
            double unit = round(elapsedMillis / 60000.0);// 将时间转换成分
            return unit + "分";// 在转换完的时间后增加单位
        } else if (elapsedMillis < 60000 * 60 * 24) {
            double unit = round(elapsedMillis / (60000.0 * 60));// 将时间转换成时
            return unit + "时";// 在转换完的时间后增加单位
        } else {
            double unit = round(elapsedMillis / (60000.0 * 60 * 24));// 将时间转换成天
            return unit + "天";// 在转换完的时间后增加单位
        }
    }
    
    public static void main(String[] args) {
        long begin = System.currentTimeMillis();
        System.out.println("程序开始运行时间:" + begin);
        for (int i = 0; i < 1000000000; i++) {
            Math.random();
        }
        long end = System.currentTimeMillis();
        System.out.println("程序结束运行时间:" + end);
        System.out.println("程序运行时间:" + getElapsedText(end - begin));
    }
}

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

转载于:https://my.oschina.net/u/3212883/blog/864526

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值