Maison >Java >javaDidacticiel >Quelle est la manière la plus précise de mesurer le temps écoulé en Java ?

Quelle est la manière la plus précise de mesurer le temps écoulé en Java ?

DDD
DDDoriginal
2024-12-19 14:41:12665parcourir

What's the Most Accurate Way to Measure Elapsed Time in Java?

Mesure du temps écoulé en Java

Pour mesurer le temps écoulé en Java, plusieurs méthodes sont disponibles. Cependant, l'approche la plus précise et la plus efficace consiste à utiliser la méthode System.nanoTime().

Contrairement à la croyance populaire, System.currentTimeMillis() n'est pas adapté pour mesurer le temps écoulé, car il s'appuie sur une horloge murale. temps, qui est sujet à des dérives et à des corrections manuelles.

System.nanoTime(), en revanche, est conçu spécifiquement pour mesurer le temps écoulé et n'est pas affecté par réglages de l'horloge murale. Il fonctionne avec une granularité beaucoup plus fine, généralement en microsecondes ou en nanosecondes.

Pour illustrer son utilisation, considérons la classe suivante :

public class Stream {
    private long startTime;
    private long endTime;

    public void setStartTime() {
        startTime = System.nanoTime();
    }

    public void setEndTime() {
        endTime = System.nanoTime();
    }

    public long getDuration() {
        return endTime - startTime;
    }
}

En appelant les méthodes setStartTime() et setEndTime() dans les blocs de code pertinents, vous pouvez capturer les horodatages. Par la suite, l'appel de getDuration() calculera avec précision le temps écoulé du début à la fin en nanosecondes, qui peut être facilement converti dans l'unité appropriée (par exemple, millisecondes, secondes ou minutes).

Rappelez-vous, while System.nanoTime() offre un timing de haute précision, ses résultats peuvent également être affectés par des facteurs tels que le système d'exploitation, le matériel et d'autres processus exécutés simultanément.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn