gpt4 book ai didi

java - Java 中测量耗时的最快方法

转载 作者:行者123 更新时间:2023-12-01 07:20:21 25 4
gpt4 key购买 nike

我读到的有关 currentTimeMillis 与 nanoTime 的所有内容似乎都只关注准确性。如果我只查找以毫秒为单位的耗时,如果我想要获得最佳性能,我应该使用哪一个?

似乎 currentTimeMillis 就是答案,因为我不需要将最终答案从 ns 转换为 ms,但这是从我的应用程序的角度来看,而幕后发生的事情可能会使其成为错误的选择,即我为什么要问。

最佳答案

纯 Java 基本上只有两个选项;您已经给它们命名了:

  • System.currentTimeMillis
  • System.nanoTime

这两种方法都是 JVM 内在函数。
在 Linux 上,它们被编译为对 gettimeofday 的直接调用或clock_gettime分别。
在 Windows 上 - GetSystemTimeAsFileTimeQueryPerformanceCounter分别。

这些方法的性能很大程度上取决于平台、CPU架构、操作系统版本、Java版本、并发线程数等。在我的 Windows 笔记本电脑上,currentTimeMillis 需要 7 ns,而 nanoTime - 16 ns,而在多处理器 Linux 服务器上,两种方法都需要大约 40 ns。所以,这取决于。

我强烈建议阅读 Alexey Shipilёv 的帖子 Nanotrusting the nanotime涵盖了 Java 中时间测量的许多方面。

关于java - Java 中测量耗时的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40250112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com