- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我知道 System.nanoTime()
现在是在 System.currentTimeInMillis()
上测量时间的首选方法。第一个明显的原因是 nanoTime() 提供了更精确的计时,另一个原因是我读到后者受系统实时时钟调整的影响。 “受系统实时时钟影响”是什么意思?
最佳答案
在这种情况下,我发现以下博客文章摘录很有用:
If you are interested in measuring absolute time then always use
System.currentTimeMillis()
. Be aware that its resolution may be quite coarse (though this is rarely an issue for absolute times.)If you are interested in measuring/calculating elapsed time, then always use
System.nanoTime()
. On most systems it will give a resolution on the order of microseconds. Be aware though, this call can also take microseconds to execute on some platforms.
Clocks and Timers - General Overview大卫·福尔摩斯
由于 System.currentTimeMillis()
依赖于系统 time of day 时钟,因此对时间的调整是合法的,以保持准时。
这里的调整是什么意思?以 Linux 中 CLOCK_REALTIME
的描述为例:
System-wide clock that measures real (i.e., wall-clock) time. Setting this clock requires appropriate privileges. This clock is affected by discontinuous jumps in the system time (e.g., if the system administrator manually changes the clock), and by the incremental adjustments performed by adjtime(3) and NTP.
关于java - System.currenTimeInMillis() 与 System.nanoTime(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11591000/
大家好,我有一段代码如下所示: public class Test { public static void main(String args[]) { long a = Sy
我做了这样的基准: for (int i = 0; i < 1000 * 1000; ++i) { long var = System.nanoTime(); } 在我的jdk6.0电脑上需要
我正在做一个项目,需要在 999 个随机 double 组中实现冒泡排序、希尔排序和快速排序算法。 我需要测量每个算法运行所需的时间。 我正在使用 System.nanoTime() 来测量每个算法的
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有一个线程将数据插入队列,另一个线程从队列中读取数据并进行处理。我想检查数据在处理之前在队列中的停留时间。 我在第一个线程推送之前在数据中添加了一个时间参数(使用 System.nanoTime()
可以使用 Clock 模拟调用,例如 System.currentTimeMillis() 使用 Clock.millis() 并注入(inject) Clock 的模拟实现。 是否有类似的方法可以轻
我想以纳秒为单位计算两个事件之间耗时。为此,我可以使用 System.nanoTime()如前所述 here .问题是这两个事件发生在不同的线程中。 自 nanoTime()不返回绝对时间戳,而只能用
我想做与下面这段代码相同的操作,但使用 System.nanoTime()反而 new Timer().schedule(new TimerTask() {
我正在编写一个 FTP 客户端应用程序,并在代码中的两个点使用了 System.nanoTime(),返回的秒数差异为 18,而我的程序只需要 2 秒...检查 onPostExecute 方法中的日
我目前正在使用 Java 编写多线程程序。在某些时候,不同的线程会记录它们的操作,我正在使用 nanoTime为了这。每个线程都有自己的日志文件,最后我将它们合并并根据时间 (nanoTime) 对它
我在我的应用程序中使用 system.nanoTime 并计算相对于开始时间的时间。 我的应用程序运行得很好,直到我将其复制到一台新计算机上,在它上纳米时间给了我较慢的值。 我编写了一个简单的应用程序
这不是我第一次遇到编程语言中的时钟时间问题。基本上,我通过在 while 循环中调用函数来测量函数的运行速度。问题是,由于某种原因,while 循环运行的时间越长,耗时就越短。谁能解释一下吗?代码如下
我使用以下代码来评估我的方法/操作的性能- 问题:由于这是贯穿代码的,是否应将其从生产代码中删除以防止降低应用性能。 在我们的一次讨论中,有人指出 Linux(时区)上的一些时间调用会执行 IO 以查
在 gemfire 上,我有一个区域 ABC,并且在该区域内有一个 long 类型的列/字段。在此字段中,我将值设置为 System.nanoTime()。我想获取该区域 24 小时前的所有记录。我怎
我正在编写一个使用 System.nanotime 的 android 计时器应用程序。问题是它给了我低估的结果和负数。 redVal、blueVal 和 greenVal 在相机的每一帧上更新。 结
我正在开发一个 2d java 游戏,但我遇到了计时器问题。这是我的游戏循环: void gameLoop(isRunning){ .... doStuff(); .... } 我在循环中有一个像这样
我正在关注这个jmh 测试http://hg.openjdk.java.net/code-tools/jmh/file/57623b7f64e6/jmh-core-benchmarks/src/mai
我有一个很长的字符串,其模式为 最后,我试图测试一些函数调用的性能,所以我进行了以下测试以试图找出答案......但我认为我可能错误地使用了 nanoTime?因为无论我如何交换顺序,结果都没有意义.
我使用变量 time_of_last_call 作为我的时间起点;因为 nanoTime() 可能会给出负值,所以我不能使用 0 作为我的时间起点来初始化 time_of_last_call。如果我用
我有一个多线程 Java 程序,可以在几秒钟内创建数百个临时文件。这些文件位于 /tmp 中,并使用 System.nanoTime() 命名。 是否保证文件名是唯一的? 最佳答案 不,不能保证每次调
我是一名优秀的程序员,十分优秀!