Heim > Java > javaLernprogramm > Ist System.nanoTime() auf modernen Multi-Core-Systemen wirklich zuverlässig?

Ist System.nanoTime() auf modernen Multi-Core-Systemen wirklich zuverlässig?

Susan Sarandon
Freigeben: 2024-11-17 19:06:02
Original
995 Leute haben es durchsucht

Is System.nanoTime() Truly Reliable on Modern Multi-Core Systems?

Ist System.nanoTime() auf Multi-Core-Systemen immer noch fehlerhaft?

Der Blogbeitrag „Vorsicht vor System.nanoTime() in „Java“ äußerte Bedenken hinsichtlich der Zuverlässigkeit von System.nanoTime() auf x86-Architekturen, wo der verwendete CPU-spezifische Zähler aufgrund der übergreifenden Thread-Planung zu negativen Zeitmessungen führen könnte unterschiedliche Prozessoren mit asynchronen Zählern.

Eine Antwort eines Sun-Ingenieurs (jetzt Oracle) aus dem Jahr 2011 stellte jedoch klar, dass dieses Problem in Windows XP Service Pack 2 behoben wurde und auf modernen Windows- und Linux-Systemen kein Problem mehr darstellt.

Windows:

  • Die Standardimplementierung von QueryPerformanceCounter wird verwendet von System.nanoTime() wurde geändert, um den Power-Management-Timer (PMTimer) zu verwenden, der auf SMP-Systemen prozessorübergreifend synchronisiert wird.

Linux:

  • Ab der Kernel-Version 2.6.18 wurde die Systemlogik zur Erkennung asynchroner Zeitquellen geändert verbessert.
  • Unzuverlässige Zeitquellen werden normalerweise erkannt und es wird auf eine zuverlässigere Taktquelle zurückgegriffen.

Andere Plattformen:

Die Die bereitgestellte Antwort bezieht sich nicht auf SPARC- oder Solaris-Systeme. Es kann jedoch davon ausgegangen werden, dass auch diese Plattformen ähnliche Mechanismen implementiert haben, um eine konsistente Zeitmessung über mehrere Prozessoren hinweg zu gewährleisten.

Es ist wichtig zu beachten, dass diese Informationen mit dem Stand von 2011 korrekt waren. Für die neuesten Updates auf der Implementierung und Verhalten von System.nanoTime() finden Sie in der aktuellen Dokumentation und in den Community-Diskussionen.

Das obige ist der detaillierte Inhalt vonIst System.nanoTime() auf modernen Multi-Core-Systemen wirklich zuverlässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage