您的位置:首页 > 数码常识数码常识

java时间取整(java取当前时间)

2025-05-14人已围观

java时间取整(java取当前时间)
  Java有两个取时间的方法: System.currentTimeMillis() 和 System.nanoTime() ,它们的使用场景是有区别的,当前网上一些文章对于这两个方法的性能问题存在一些片面的描述,本文希望能给出一个简单的最终答案。

  java取当前时间

  System.currentTimeMillis() 存在性能问题?

  答案是否定的。这两个方法性能差异取决于操作系统。

  Windows:

  在 Windows 下, System.currentTimeMillis() 比 System.nanoTime() 要快很多,这是因为 Windows 系统为前者提供的只是一个缓存变量,而后者则是实时的去硬件底层获取计数。

  参考1: https://stackoverflow.com/a/5...参考2: http://stas-blogspot.blogspot...

  因此如果你的生产环境是 Windows,请务必不要使用 System.nanoTime() !

  Linux:

  在 Linux 下,两者的执行耗时相差不大,不论是单线程还是多线程。

  不同的虚拟机实现会带来性能差异

  如今的云主机主要有 Xen 和 KVM 两种实现方式,网上有文章发现它们在取系统时间方面存在性能差异。

  文章地址: https:///20...

  当你的虚拟机用的是 Xen 时,取时间的耗时会是 KVM 的十倍以上。不过上文也提供了遇到此类问题该如何解决的方案。

  需要写一个专门的类来提升 System.currentTimeMillis() 性能吗?

  不需要。那属于画蛇添足。

  我的测试代码

  我的测试代码如下,没有任何依赖,可以直接用 javac 编译然后运行。读者有兴趣可以试试:

  因为我用的是 Windows,所以执行输出当中 System.nanoTime() 明显非常慢。具体输出内容我就不放出来了,因为不具有参考价值,大多数生产环境用的是 Linux。

  上面就是小居数码小编今天给大家介绍的关于(java取当前时间)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

  94%的朋友还想知道的:

  java程序员必备软件和工具(最常用的java开发工具)

  苹果秋季发布会和华为秋季发布会区别(华为和苹果发布会时间)

  会c语言学java难吗(c语言与java难度)

  java用什么开发工具比较好(提高java开发效率)



  154769
 

很赞哦! ()

随机图文