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