Java System.nanoTime()经过的时间差异很大

And*_*der 8 java android nanotime

我在和android小部件并检查两次调用System.nanoTime()之间的经过时间,并且数字很大.你如何衡量经过的时间?它应该是一秒钟的反应,而不是它的更多.谢谢

Ste*_*n C 20

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写一封信.我相信有人会很感激...... :-)


ilu*_*uxa 8

一秒钟包含1,000,000,000纳秒,因此只要您的数量在该范围内,这是合理的.