JavaSystem.NanoTime Método

Definición

Devuelve el valor actual del origen de tiempo de alta resolución de la máquina virtual en ejecución Java, en nanosegundos.

[Android.Runtime.Register("nanoTime", "()J", "")]
public static long NanoTime();
[<Android.Runtime.Register("nanoTime", "()J", "")>]
static member NanoTime : unit -> int64

Devoluciones

el valor actual del origen de tiempo de alta resolución de la máquina virtual en ejecución Java, en nanosegundos

Atributos

Comentarios

Devuelve el valor actual del origen de tiempo de alta resolución de la máquina virtual en ejecución Java, en nanosegundos.

Este método solo se puede usar para medir el tiempo transcurrido y no está relacionado con ninguna otra noción de tiempo del sistema o del reloj. El valor devuelto representa nanosegundos, ya que algún tiempo de origen fijo pero arbitrario (quizás en el futuro, por lo que los valores pueden ser negativos). Todas las invocaciones de este método usan el mismo origen en una instancia de una máquina virtual Java; es probable que otras instancias de máquina virtual usen un origen diferente.

Este método proporciona precisión nanosegunda, pero no necesariamente resolución nanosegunda (es decir, la frecuencia con la que cambia el valor): no se realiza ninguna garantía, excepto que la resolución es al menos tan buena como la de #currentTimeMillis().

Las diferencias en llamadas sucesivas que abarcan más de aproximadamente 292 años (2<sup>63</sup> nanosegundos) no calcularán correctamente el tiempo transcurrido debido a un desbordamiento numérico.

Los valores devueltos por este método solo son significativos cuando se calcula la diferencia entre dos valores de este tipo, obtenidos dentro de la misma instancia de una máquina virtual Java.

Por ejemplo, para medir cuánto tiempo tarda algún código en ejecutarse:

{@code
            long startTime = System.nanoTime();
            // ... the code being measured ...
            long estimatedTime = System.nanoTime() - startTime;}

Para comparar dos valores nanoTime

{@code
            long t0 = System.nanoTime();
            ...
            long t1 = System.nanoTime();}

se debe usar t1 - t0 < 0, no t1 < t0, debido a la posibilidad de desbordamiento numérico.

El valor devuelto por este método no tiene en cuenta el tiempo transcurrido durante la suspensión profunda. Para obtener instalaciones de mantenimiento de tiempo disponibles en Android, consulte android.os.SystemClock.

Agregado en 1.5.

Java documentación para java.lang.System.nanoTime().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a