博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
System.nanoTime与System.currentTimeMillis
阅读量:5153 次
发布时间:2019-06-13

本文共 804 字,大约阅读时间需要 2 分钟。

 

System.nanoTime提供相对精确的计时,但是不能用他来计算当前日期。(系统计时器的当前值,以毫微秒为单位)

 

System.currentTimeMillis返回的是从1970.1.1 UTC 零点开始到现在的时间,精确到毫秒,平时我们可以根据System.currentTimeMillis来计算当前日期,星期几等,可以方便的与Date进行转换。(以毫秒为单位测量)

做非常精确的时间统计,需谨慎使用System.currentTimeMillis() 。

 

有一个值得关注的问题是,System.nanoTime()的性能不如System.currentTimeMillis(),这是因为

System.currentTimeMillis()是使用GetSystemTimeAsFileTime方法实现的,该方法基本上只读取Windows维护的低分辨率时间值。根据所报告的信息,读取这个全局变量自然很快 - 大约6个周期。 System.nanoTime()使用实现所述QueryPerformanceCounter/ QueryPerformanceFrequency API(如果可用的话,否则它返回currentTimeMillis*10^6)。 QueryPerformanceCounter(QPC)在这取决于它的运行在硬件上不同的方式实现。通常,其使用两可编程间隔计时器(PIT)或ACPI电源管理计时器(PMT),或CPU级别的时间戳计数器(TSC)访问PIT / PMT需要执行慢速I / O端口指令,因此QPC的执行时间大约为几微秒。 100个时钟周期的顺序(从芯片读取TSC并将其转换为基于工作频率的时间值)。

 

引:

 

共同学习,共同进步,若有补充,欢迎指出,谢谢!

转载于:https://www.cnblogs.com/dengguangxue/p/11181016.html

你可能感兴趣的文章
Jmeter_模板&设置默认请求参数
查看>>
HTML注释
查看>>
Activiti 用户任务并行动态多实例(多用户执行流程)
查看>>
JAM的计数法
查看>>
[AngularJS + Webpack] require directives
查看>>
中间介
查看>>
在win32/安卓开发环境下编译BOX2D代码
查看>>
【JPA】字段访问、属性访问及混合访问
查看>>
斐波那契数列(Fibonacci)递归和非递归实现
查看>>
dbname, instance, sid
查看>>
HDU 2577 How to Type
查看>>
LA 4123 (计数 递推) Glenbow Museum
查看>>
HDU 1533 二分图最小权匹配 Going Home
查看>>
关于学习Python的一些心得
查看>>
两个整数集合的交集 ———— 腾讯2014软件开发笔试题目
查看>>
usaco3.2
查看>>
web开发的一些材料
查看>>
【BZOJ1058】[ZJOI2007]报表统计 STL
查看>>
maven 仓库配置 pom中repositories属性
查看>>
memcached telnet命令
查看>>