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

  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • HuskyStarcraft

    HuskyStarcra

    4 HAZİRAN 2009
  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010