首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

System.currentTimeMillis vs System.nanoTime

在Java中,System.currentTimeMillis()System.nanoTime() 都是用于获取系统时间的方法,但它们之间存在一些差异。

  1. 单位:System.currentTimeMillis() 返回的是以毫秒为单位的时间,而 System.nanoTime() 返回的是以纳秒为单位的时间。
  2. 精度:System.currentTimeMillis() 返回的时间是从1970年1月1日00:00:00 UTC到当前时间的毫秒数,其精度可能受到系统时钟抖动的影响。System.nanoTime() 返回的时间是从某个未指定的时间点开始的纳秒数,其精度相对更高,适用于计算时间间隔。
  3. 适用场景:System.currentTimeMillis() 更适合用于获取绝对时间,例如记录程序运行时间、计算时间差等。System.nanoTime() 更适合用于计算时间间隔,例如在性能测试中计算方法执行时间。
  4. 腾讯云相关产品:腾讯云提供了云服务器、数据库、存储等多种产品,可以满足不同的应用场景。具体产品介绍可以参考腾讯云官方文档。

总之,System.currentTimeMillis()System.nanoTime() 都是用于获取系统时间的方法,但它们的单位、精度和适用场景不同。在实际应用中,可以根据需求选择合适的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?

    System.currentTimeMillis() 描述:返回当前时间的毫秒数。这个时间戳是从1970年1月1日00:00:00 UTC(Unix元年)开始的。...代码示例: long startTime = System.nanoTime(); // Some code execution long endTime = System.nanoTime...用途: System.currentTimeMillis()适用于一般用途,如日志记录和简单的计时。 System.nanoTime()适用于精确的时间测量,不用于获取实际的当前时间。...时间的起点(Epoch Basis): System.currentTimeMillis() 和 Instant类方法基于Unix元年(1970-01-01 00:00:00 UTC)。...System.nanoTime()基于一个任意但固定的时间点。 根据具体需求和应用场景,选择合适的获取时间戳的方法对于代码的效率和准确性都很重要。

    21410

    雪花算法对System.currentTimeMillis()优化真的有用么?

    ()获取时间,有一种说法是认为System.currentTimeMillis()慢,是因为每次调用都会去跟系统打一次交道,在高并发情况下,大量并发的系统调用容易会影响性能(对它的调用甚至比new一个普通对象都要耗时...()); System.out.println(System.currentTimeMillis() - timer); } } Windows:i5-4590 16G内存 4...核 512固态 Mac: Mac pro 2020 512G固态 16G内存 Linux:deepin系统,虚拟机,160G磁盘,内存8G 单线程环境测试一下 System.currentTimeMillis...linux上由于虚拟机,核数增加的时候,并无太多作用,但是时间对比于直接调用 System.currentTimeMillis()其实是变慢的。...(); } 下面是1千万id,八个线程,测出来调用timeGen()的次数,也就是可以看出时间冲突的次数: 平台/方法 SystemClock.now() System.currentTimeMillis

    69330

    System.currentTimeMillis的性能真有如此不堪吗?

    最近我在研究一款中间件的源代码时,发现它获取当前时间不是通过System.currentTimeMillis,而是通过自定义的System.currentTimeMillis的缓存类(见下方),难道System.currentTimeMillis...currentTimeMillis() { return CURRENT_TIME; } public static final long currentTimeNanos() { return System.nanoTime...能比的应该是每次调用的耗时之和才对(见下) long begin = System.nanoTime(); //单次调用System.currrentTimeMillis() long end = System.nanoTime...(); sum += end - begin; 记录每次调用的总耗时,这种方法虽然会把System.nanoTime()也算进总耗时里,但因为不论并发测试还是单线程测试都会记录System.nanoTime...(); runnable.run(); long end = System.nanoTime(); sum += end - begin

    1.2K11

    6种快速统计代码执行时间的方法,真香!(史上最全)

    Java Microbenchmark Harness,Java 微基准测试套件)这么重的测试框架,所以本文就汇总了一些 Java 中比较常用的执行时间统计方法,总共包含以下 6 种,如下图所示: 方法一:System.currentTimeMillis...static void main(String[] args) throws InterruptedException { // 开始时间 long stime = System.currentTimeMillis...(); // 执行时间(1s) Thread.sleep(1000); // 结束时间 long etime = System.currentTimeMillis...总结 本文介绍了 6 种实现代码统计的方法,其中 3 种是 Java 内置的方法: System.currentTimeMillis() System.nanoTime() new Date() 还介绍了...在没有用到 spring、commons-langs3、guava 任意一种框架的情况下,推荐使用 System.currentTimeMillis() 或 System.nanoTime() 来实现代码统计

    51710

    雪花算法对System.currentTimeMillis()优化真的有用么?

    前面已经讲过了雪花算法,里面使用了System.currentTimeMillis()获取时间,有一种说法是认为System.currentTimeMillis()慢,是因为每次调用都会去跟系统打一次交道...()); System.out.println(System.currentTimeMillis() - timer); } } Windows:i5-4590 16G内存 4核...512固态 Mac: Mac pro 2020 512G固态 16G内存 Linux:deepin系统,虚拟机,160G磁盘,内存8G 单线程环境测试一下 System.currentTimeMillis...linux上由于虚拟机,核数增加的时候,并无太多作用,但是时间对比于直接调用 System.currentTimeMillis()其实是变慢的。...(); } 下面是1千万id,八个线程,测出来调用timeGen()的次数,也就是可以看出时间冲突的次数: 平台/方法 SystemClock.now() System.currentTimeMillis

    45400
    领券