Java 对System.currentTimeInMillis()的并发调用中的性能瓶颈

Java 对System.currentTimeInMillis()的并发调用中的性能瓶颈,java,concurrency,clojure,Java,Concurrency,Clojure,我怀疑来自不同线程(>15)的调用对性能有负面影响。在并发应用程序中,有没有更好的方法来获取系统时间?如果确实存在问题,您可以让后台线程将当前时间存储在volatile中。或者少打电话。只是一个小提示: 我从谷歌工程师和其他程序员那里读到,使用System.nanotime更好。比如说 对于间隔计时,始终优先使用System.nanoTime System.currentTimeMillis 我不这么认为,大多数操作系统都为这种功能提供了很好的支持,而且它可能是作为本机方法实现的。为什么要将性能

我怀疑来自不同线程(>15)的调用对性能有负面影响。在并发应用程序中,有没有更好的方法来获取系统时间?

如果确实存在问题,您可以让后台线程将当前时间存储在
volatile
中。或者少打电话。

只是一个小提示:

我从谷歌工程师和其他程序员那里读到,使用System.nanotime更好。比如说

对于间隔计时,始终优先使用System.nanoTime System.currentTimeMillis


我不这么认为,大多数操作系统都为这种功能提供了很好的支持,而且它可能是作为本机方法实现的。为什么要将性能问题归咎于此方法?您做了哪些分析表明此函数是问题所在?+1-对于必须频繁调用
系统的应用程序,肯定有点奇怪。currentTimeMillis
。没有回答这个问题。此外,即使根据您的报价,System.nanoTime是间隔计时的首选,也没有提到OP使用System time的目的。间隔时间在这里可能不适用。也许它不能直接回答这个问题,但我认为其他人已经回答了这个问题,所以我只是提供了一个我读过的提示。timeinMillis在MS windows的链接基因T()的粒度库方面存在问题。我知道我们更清楚为什么现在的米利斯会成为一个问题。