Apabila berurusan dengan kemas kini kedudukan objek dalam permainan, pilihan antara menggunakan System.currentTimeMillis () dan System.nanoTime() menjadi penting. Walaupun kedua-dua kaedah menyediakan ukuran masa, ketepatan dan kejituannya berbeza.
Ketepatan merujuk kepada unit masa terkecil yang boleh diukur, manakala ketepatan merujuk kepada seberapa dekat ukuran dengan masa sebenar. System.currentTimeMillis() mengembalikan milisaat, manakala System.nanoTime() mengembalikan nanosaat, menunjukkan bahawa System.nanoTime() adalah lebih tepat.
Seperti yang dinyatakan dalam soalan, berbeza sistem pengendalian mempunyai resolusi masa yang berbeza-beza. Windows mempunyai resolusi yang dilaporkan 50ms, manakala Mac/Linux mempunyai resolusi lebih kurang 1ms. Ini bermakna bahawa pengukuran pada Windows menggunakan System.currentTimeMillis() mungkin mempunyai ketidaktepatan sehingga 50ms.
Memandangkan matlamat utama adalah untuk mencapai ukuran yang paling tepat untuk kedudukan objek, disyorkan untuk menggunakan System.nanoTime(). Ia memberikan ketepatan nanosaat, membolehkan pengukuran masa yang lebih tepat dan pergerakan objek yang lebih lancar dalam permainan anda.
Untuk menunjukkan, kod berikut mengukur masa pelaksanaan tugas menggunakan System.nanoTime( ):
long startTime = System.nanoTime(); // ... code to be measured ... long estimatedTime = System.nanoTime() - startTime;
Dengan menolak Masa mula daripada masa semasa, kami memperoleh masa berlalu dengan nanosaat ketepatan.
Atas ialah kandungan terperinci System.currentTimeMillis() vs. System.nanoTime(): Mana yang Terbaik untuk Kedudukan Objek Permainan yang Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!