web-dev-qa-db-fra.com

Comment mon ordinateur peut-il utiliser 300% de la puissance de traitement de l'ordinateur?

Je joue avec un script et je me suis laissé emporter (il fonctionne toujours et mon ordinateur n’est pas encore mort). Je suis en train d'exécuter 17 itérations du script (avec l'intention de planter mon ordinateur).

En regardant le moniteur d'activité, je constate que chaque processus Python a un pid unique et qu'il semble occuper environ 17 à 20% de ma puissance de traitement ... Comment cela est-il possible? Comme par magie, mon ordinateur a-t-il augmenté sa puissance de 200% et brisé les lois de la thermodynamique quelque part?

 Enter image description here

64
Frankenmint

Sous OS X, comme d’autres * nixes, la charge du processeur est mesurée par cœur de processeur virtuel. Si vous en avez plusieurs, vous pouvez combiner 200% et plus en pleine charge.

Cela diffère de Windows et peut-être de certains autres systèmes, où la charge du processeur est calculée pour chaque processeur (ou processeurs - je ne me souviens pas de son comportement lorsque plusieurs processeurs physiques sont utilisés).

101
Vasfed

OS X et Linux et éventuellement d'autres systèmes d'exploitation UNIX (ou plutôt les outils les plus courants sur ces systèmes) affichent l'utilisation du processeur différemment de Windows. Sous Windows, 100% signifie « toutes les ressources CPU utilisées». Sous Linux, cela signifie qu’un «thread» (comme dans l’hyper-threading) est complètement occupé. En tant que tel, il peut atteindre jusqu'à (Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs) au total.

Bien que cela ne soit pas entièrement lié, un autre fait intéressant: Windows 10 normalise davantage l'utilisation du processeur en utilisant l'état de limitation actuel du processeur. Ainsi, un processeur à 2 GHz limité à 1 GHz ne sera occupé qu’à 50%.

81
Daniel B

Comme indiqué dans plusieurs réponses, Mac indique le pourcentage de processeur de chaque processus sous forme de "pourcentage d'un cœur". Vous devez donc le diviser par le nombre de cœurs [y compris HT, en tant que "double"].

Si vous ne savez pas combien de cœurs virtuels vous avez, Cmd ⌘3 affichera la sous-fenêtre Historique de l'UC du moniteur d'activité, où vous pourrez simplement compter les bandes;)

enter image description here

Directement en dessous de l'endroit où vous avez découpé l'image, vous trouverez les informations dont vous avez besoin pour déterminer rapidement l'utilisation totale réelle de System :, Utilisateur: & Inactif: vous trouverez ici votre total simple à 100%.

enter image description here

12
Tetsujin

Le moniteur d'activité ne mesure pas réellement la puissance de traitement utilisée par chaque application/processus, il l'estime simplement à l'aide d'un algorithme. Donc, cela peut être inexact ...

En outre, comme le fait remarquer @Vasfed, la consommation de processeur est mesurée par cœur de processeur. Plusieurs cœurs peuvent signifier une utilisation supérieure à 100% ...

Un geek trébuche à l'occasion sur ce phénomène et reste éberlué jusqu'à ce qu'un superutilisateur lui vienne en aide ...; D

6
rahuldottech