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:
Linux:
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!