lecture CLR via C# 2.0 (je n'ai pas 3.0 avec moi pour le moment)Quelle est la durée entre les changements de contexte sous Windows?
Est-ce encore le cas:
S'il n'y a qu'un seul processeur dans un ordinateur, un seul thread peut fonctionner à tout temps. Windows doit garder une trace des objets thread, et de temps en temps, Windows doit décider quel thread à programmer pour aller à la CPU. C'est un code supplémentaire qui doit s'exécuter une fois toutes les 20 millisecondes environ. Lorsque Windows arrête l'exécution du code d'un thread par un processeur et commence à exécuter le code d'un autre thread, nous l'appelons un commutateur de contexte. Un changement de contexte est assez cher car le système d'exploitation doit:
Donc, circa CLR via C# 2.0 laisse dire que nous sommes sur Pentium 4 2.4ghz 1 core non-HT, XP. Toutes les 20 millisecondes? Lorsqu'un thread CLR ou un thread Java est mappé à un thread OS seulement un maximum de 50 threads par seconde peut avoir une chance de s'exécuter?
J'ai lu que le changement de contexte est très rapide en mircoseconds ici sur le SO, mais combien de fois à peu près (hypothèses de style de magnitude) va dire un ancien serveur Windows 5 ans 2003 modeste Pentium Xeon simple core donne le système d'exploitation la possibilité au changement de contexte? 20ms dans la bonne zone?
Je n'ai pas besoin de chiffres exacts Je veux juste être sûr que c'est dans la bonne zone, me semble plutôt longue.
43 threads peuvent voir un peu de CPU à 100%. Je n'ai pas assez de threads pour obtenir un résultat quand ils abandonnent le partage après quelques ms (sommeil) mais 1000+ –
CPu 100%. Sans débogueur 125 threads liés cpu vu, suggérant le 20millisecond est périmé dans Windows7. Le contexte exe évidemment change de milliers de fois entre la demi-douzaine de threads .net internes –
Je pensais que le changement de contexte ces jours-ci était de 4 ms ... –