Maison > Java > javaDidacticiel > System.nanoTime() est-il vraiment fiable sur les systèmes multicœurs modernes ?

System.nanoTime() est-il vraiment fiable sur les systèmes multicœurs modernes ?

Susan Sarandon
Libérer: 2024-11-17 19:06:02
original
994 Les gens l'ont consulté

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

System.nanoTime() est-il toujours défectueux sur les systèmes multicœurs ?

Le billet de blog « Méfiez-vous de System.nanoTime() dans Java" a soulevé des inquiétudes quant à la fiabilité de System.nanoTime() sur les architectures x86, où le compteur spécifique au processeur qu'il utilise pourrait conduire à des mesures de temps négatives en raison de la planification des threads sur différents processeurs avec des compteurs asynchrones.

Cependant, une réponse datant de 2011 d'un ingénieur Sun (maintenant Oracle) a précisé que ce problème avait été résolu dans Windows XP Service Pack 2 et ne constituait plus un problème sur les systèmes Windows et Linux modernes.

Windows :

  • L'implémentation par défaut de QueryPerformanceCounter, utilisée par System.nanoTime(), a été modifiée pour utiliser le minuteur de gestion de l'alimentation (PMTimer), qui est synchronisé entre les processeurs des systèmes SMP.

Linux :

  • À partir de la version 2.6.18 du noyau, la logique système de détection des sources de temps asynchrones a été améliorée.
  • Sources de temps peu fiables sont généralement détectés et un recours à une source d'horloge plus fiable est utilisé.

Autres plates-formes :

La réponse fournie ne concerne pas les systèmes SPARC ou Solaris. Cependant, il est raisonnable de supposer que ces plates-formes ont également mis en œuvre des mécanismes similaires pour garantir un chronométrage cohérent sur plusieurs processeurs.

Il est important de noter que ces informations étaient exactes à partir de 2011. Pour les mises à jour les plus récentes sur le implémentation et comportement de System.nanoTime(), veuillez vous référer à la documentation à jour et aux discussions de la communauté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal