Java System.nanoTime() 耗时的巨大差异

标签 java android nanotime

我在 android 小部件中并检查两次 System.nanoTime() 调用之间耗时,这个数字很大。你如何用这个测量耗时?它应该是几分之一秒,而不是更多。谢谢

最佳答案

System.nanoTime()返回一个时间值,粒度为纳秒;即 10-9 秒,如 javadoc 中所述.两次 System.nanoTime() 调用之间相差几分之一秒的差异必然是一个很大的数字。


如果您想要具有更大粒度的时间度量,请考虑 System.currentTimeMillis() ... 或仅将纳秒值除以 10 的适当幂以适合您的应用。

请注意,在 Android 平台上有 3 种不同的系统时钟,它们支持不同的时间“度量”;见SystemClock .如果您明确地为 Android 平台编程,您应该阅读 javadoc 并决定哪种措施最适合您正在做的事情。


供您引用,“nano-”是国际单位制 (SI) 定义的标准前缀之一 - 请参阅 http://physics.nist.gov/cuu/Units/prefixes.html .

如果您真的认为“他们”弄错了并且认为“纳米”太小,您可以随时给 NIST 写信。我相信有人会很感激... :-)

关于Java System.nanoTime() 耗时的巨大差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5023647/

相关文章:

java - 使用特定名称服务器解析主机名的 Scala 或 java lib

java - MessageGroupStoreReaper 失败并显示 "was expecting a single payload"IllegalStateException

android - 针对 Android 12 的 list 合并失败

android - 从 DialogFragment 中的 EditText 获取文本

Java随机化字符串

Java启动、停止和恢复线程

java - 引起的java.lang.UnsupportedOperationException : addView(View,layoutParams)在AdapterView中不受支持

java - 为什么结果不更接近? (我只做了一次试验)

java - 为什么搜索次数越多,搜索时间就越短?

Java 8 Stream API 收集器 - addAll 不适用于参数对象,addAll 未定义类型对象