web-dev-qa-db-fra.com

Définissez la priorité du processus sur Elevé: Dangereux?

J'ai lu que mettre quelque chose en temps réel est un gros non-non, alors je ne vais pas le faire. Mais j'ai une application dont je dois m'assurer que la priorité est la plus haute sur mon système, car elle est essentielle pour le reste des applications que je suis en train d'exécuter. Y-a-t-il un danger à définir la priorité sur haute, qui est un niveau en dessous du temps réel?

Aussi, comment pourrais-je y parvenir en modifiant la cible de raccourci? Quelle est la commande?

8
eek142

Le temps réel n'est pas nécessairement un "non-non". Cela pourrait simplement priver d'autres processus des cycles du processeur. Certaines applications ne peuvent pas gérer ça. C'est quelque chose que vous devriez expérimenter.

Haute devrait être moins un problème. Cependant, vous devez toujours surveiller votre système pour voir si toutes les applications se comportent bien.

Voici comment changer le processus via la ligne de commande, que vous pouvez mettre dans un raccourci:

http://support.Microsoft.com/kb/191771

6
Keltari

Je dirais que ça dépend. Si vous ne possédez qu'un seul cœur/processeur sur votre ordinateur et que la tâche nécessite beaucoup de ressources processeur, je ne le définirai pas en temps réel. Haut peut-être, mais il faut expérimenter.

Si vous avez plusieurs cœurs et que le processus est à thread unique: continuez, définissez-le comme vous le souhaitez. Vos autres cœurs seront toujours libres, même si l'un des cœurs est chargé à 100% tout le temps.

Si vous avez plusieurs cœurs et que le processus est multi-threadé: cela dépendra du chargement de tous les threads. Certains programmes ont un thread 'manager' qui distribue le travail à d'autres threads mais ne fait pas beaucoup de traitement lui-même. Cela laisserait un noyau presque libre et permettrait ainsi une priorité élevée ou en temps réel.

D'autres programmes vont essayer de prendre en compte tous les noyaux. Dans ce cas, haut peut convenir, mais il faut expérimenter.

Même d'autres ne prendront qu'un nombre particulier de cœurs et pourraient ne pas utiliser tous les cœurs disponibles. Dans ce cas, une priorité élevée ou en temps réel devrait convenir.

Sauf si vous êtes sur un seul noyau, allez-y, expérimentez. La plupart du temps, il ne fait pas de mal de le régler en haut ou même en temps réel. Vous pouvez également définir l'affinité d'un processus (le nombre de cœurs qu'il peut utiliser) dans le gestionnaire de tâches. De cette façon, vous pouvez mieux équilibrer la charge de votre processeur. Cela peut également aider à maintenir les températures et la consommation d’énergie, etc.

3
Simon Verbeke

Que cela fonctionne pour vous dépend entièrement de ce que fait votre application. Si vous devez effectuer un calcul long et long sans attendre l'attente d'E/S, attendez-vous à ce que l'exécution en priorité permette de mettre votre machine à genoux. Mais si le problème est lié au temps de latence et que votre application doit simplement se réveiller très rapidement en réponse à une finalisation d'e/s ou à un événement similaire, effectuez un traitement rapide, puis revenez à nouveau en veille, tout ira bien.

1
Nicole Hamilton