Rumah >Java >javaTutorial >Apakah Cara Paling Tepat untuk Mengukur Masa Berlalu di Jawa?

Apakah Cara Paling Tepat untuk Mengukur Masa Berlalu di Jawa?

DDD
DDDasal
2024-12-19 14:41:12675semak imbas

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

Mengukur Masa Berlalu di Jawa

Untuk mengukur masa berlalu di Jawa, beberapa kaedah tersedia. Walau bagaimanapun, pendekatan yang paling tepat dan cekap ialah menggunakan kaedah System.nanoTime().

Bertentangan dengan kepercayaan popular, System.currentTimeMillis() tidak sesuai untuk mengukur masa berlalu, kerana ia bergantung pada jam dinding masa, yang terdedah kepada drift dan pembetulan manual.

System.nanoTime(), sebaliknya, direka khusus untuk mengukur masa berlalu dan tidak terjejas oleh pelarasan jam dinding. Ia beroperasi pada butiran yang lebih halus, biasanya mikrosaat atau nanosaat.

Untuk menggambarkan penggunaannya, mari pertimbangkan kelas berikut:

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

Dengan menggunakan kaedah setStartTime() dan setEndTime() dalam blok kod yang berkaitan, anda boleh menangkap cap masa. Selepas itu, memanggil getDuration() akan mengira dengan tepat masa berlalu dari mula hingga akhir dalam nanosaat, yang boleh ditukar dengan mudah kepada unit yang sesuai (cth., milisaat, saat atau minit).

Ingat, sementara System.nanoTime() menawarkan pemasaan ketepatan tinggi, keputusannya juga boleh dipengaruhi oleh faktor seperti sistem pengendalian, perkakasan dan proses lain yang berjalan serentak.

Atas ialah kandungan terperinci Apakah Cara Paling Tepat untuk Mengukur Masa Berlalu di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn