测试程序执行时间的System.currentTimeMillis()

Java中测试程序执行时间主要是两个方法:

System.currentTimeMillis()

System.nanoTime()

这两个方法的主要区别,看JDK的API说明

currentTimeMillis //获取当前时间的毫秒级别,具体的粒度取决于操作系统,粒度可能会偏大,

        用这个方法进行时间差时,需要程序的执行时间至少在10MS以上才有意义,甚至需要大于1S以上,更能体现实际执行时间

nanoTime 主要是返回系统 计时器的一个相对时间,毫微秒级别,即1秒的十亿分之一,跟系统的钟表时间无关

        这个方法主要用来时间差的计算,时间上更精确。

使用的说明:

    自己之前在System.currentTimeMillis()上理解有误,以为返回的毫秒肯定是精确的,造成在于程序执行时间在1MS之内的统计上出现问题,以为是程序效率问题,查了好久,最好发现是该方法的粒度问题,改为System.nanoTime就比较精确的。

    测试时间时:

        如果程序的执行时间在1S以内,最好使用nanoTime,反之可使用currentTImeMillis,

    这是我自己的一个测试结果,如果有错,欢迎指正。



你可能感兴趣的:(java)