SORU
9 Aralık 2008, Salı


Sistem.currentTimeMillis vs Sistemi.nanoTime

Doğruluk Vs. Hassas

Bilmek istiyorum ne kullanmalıyım olsunSistem.() currentTimeMillisyaSistem.() nanoTimebenim oyun benim nesnenin pozisyonları güncelleme ne zaman? Hareket onların değişim son çağrı bu yana geçen süre ile doğru orantılıdır ve mümkün olduğu kadar net olmak istiyorum.

Farklı işletim sistemleri arasında zaman-çözünürlük çok ciddi sorunları olduğunu okudum (yani Mac / Linux Windows 50ms bir çözüm varken neredeyse 1 ms bir çözüm var mı??). Birincil çözünürlük oldukça yanlış görünüyor windows ve 50ms benim apps koşuyorum.

İki daha iyi seçenekler bir liste var mı?

Herhangi bir öneri / yorum?

CEVAP
9 Aralık 2008, Salı


Sadece son derece hassas ölçümler için arıyorsanızgeçen zaman, System.nanoTime() kullanın. System.currentTimeMillis() mutlak zaman başlangıcından beri geçen milisaniye cinsinden en doğru mümkün geçen zamanı verir, ama System.nanoTime() nanosaniye hassas bir zaman, bazı keyfi noktasına göre verir.

Java Belgeleri:

public static long nanoTime()

Döner en hassas mevcut sistem zamanlayıcı akım değeri, nanosaniye.

Bu yöntem, yalnızca için kullanılabilir ölçü ve zaman değil geçen sistemin herhangi bir kavram ile ilgili veya duvar saati. Döndürülen değer bazı beri nanosaniye temsil eder sabit ama keyfi bir zaman (belki de içinde değerler olabilir o yüzden gelecek, negatif). Bu yöntem sağlar nanosaniye hassas, ama değil mutlaka nanosaniye doğruluğunu. Hayır garanti nasıl yapılır sık değerlerini değiştirin. Farklılıklar daha fazla yayılan birbirini izleyen aramalar yaklaşık 292 yıl daha (263 nanosaniye) doğru değil geçen zaman sayısal nedeniyle hesaplamak taşma.

Örneğin, bazı kod çalıştırmak için ne kadar sürdüğünü ölçmek için:

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

Ayrıca bakınız: JavaDoc System.nanoTime() ve daha fazla bilgi için JavaDoc System.currentTimeMillis().

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Julia Graf

    Julia Graf

    6 Mayıs 2006
  • Living Waters

    Living Water

    9 AĞUSTOS 2006
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010