ホームページ >Java >&#&チュートリアル >Java で経過時間を測定する最も正確な方法は何ですか?

Java で経過時間を測定する最も正確な方法は何ですか?

DDD
DDDオリジナル
2024-12-19 14:41:12640ブラウズ

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

Java での経過時間の測定

Java での経過時間を測定するには、いくつかの方法が使用できます。ただし、最も正確で効率的なアプローチは、System.nanoTime() メソッドを利用することです。

一般的な考えに反して、System.currentTimeMillis() は壁時計に依存しているため、経過時間の測定には適していません。一方、

System.nanoTime() は、経過時間を測定するために特別に設計されており、壁時計の調整の影響を受けません。これは、より細かい粒度 (通常はマイクロ秒またはナノ秒) で動作します。

その使用法を説明するために、次のクラスを考えてみましょう:

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;
    }
}

setStartTime() メソッドと setEndTime() メソッドを呼び出すことにより、関連するコード ブロック内でタイムスタンプをキャプチャできます。その後、getDuration() を呼び出すと、開始から終了までの経過時間がナノ秒単位で正確に計算され、適切な単位 (ミリ秒、秒、分など) に簡単に変換できます。

覚えておいてください。 System.nanoTime() は高精度のタイミングを提供しますが、その結果は、オペレーティング システム、ハードウェア、および同時に実行されている他のプロセスなどの要因にも影響を受ける可能性があります。

以上がJava で経過時間を測定する最も正確な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。