2009-07-29 7 views
2

La machine est bicœur, le système d'exploitation utilise un noyau multiprocesseur. Pour effectuer certaines évaluations de performances, je souhaite définir l'affinité de la machine virtuelle Java sur un seul cœur. Cependant, je crains d'avoir des mesures de performance biaisées car la JVM peut ne pas savoir qu'elle est maintenant contrainte à un seul noyau, mais en utilisant toujours des primitives multiprocesseurs pour la synchronisation des threads et la récupération de place. Alors que le garbage collector peut être réglé à partir de la ligne de commande, ce n'est pas possible pour la synchronisation des threads.Comment indiquer à la machine JVM Hotspot si elle doit utiliser la synchronisation de threads à un ou plusieurs processeurs?

Maintenant, la JVM utilise principalement des threads OS (*) pour ses threads. Alors peut-être la question devrait plutôt être "Est-ce que les systèmes d'exploitation (Windows/Linux) utilisent des primitives de synchronisation correctes dans les applications multithread qui sont contraintes à l'utilisation d'un seul noyau en définissant l'affinité de thread du processus correspondant?" (*) Ce n'est pas tout à fait vrai sur Windows, où la machine virtuelle Java se propage d'elle-même avant d'appeler le système d'exploitation. Ce comportement peut être contrôlé via les paramètres -XX: + UseSpinning et -XX: PreBlockSpin.

Répondre

0

Si vous ne définissez que l'affinité de la machine virtuelle Java, les résultats seront biaisés dans une certaine mesure. Même si la JVM agit à 100% comme si elle fonctionnait sur une machine monocœur, le noyau du système d'exploitation et d'autres codes d'espace utilisateur continueraient à utiliser les cœurs supplémentaires. Cela signifie moins de frais de changement de contexte, et donc des caractéristiques de performance différentes.

Je voudrais juste désactiver le deuxième noyau. En supposant que vous êtes sur Windows XP: modifier c:\boot.ini en ajoutant

/onecpu 

à la liste des boot options et redémarrez la machine.

Questions connexes