Comment définir la priorité du processus en C++
Je suis en train de travailler sur un programme de tri de données, et j'ai besoin de définir le processus de la priorité à 31, ce qui je crois est la plus haute priorité du processus dans Windows. J'ai fait quelques recherches, mais ne peut pas comprendre comment le faire en C++.
dans Unix, vous avez de nice(int inc) dans unistd.h, peut-être quelque chose de similaire sur Windows?
Juste par curiosité, pourquoi un programme qui trie les données ont besoin pour fonctionner à plus haute priorité?
Pour l'avenir, les googlers: Réglage d'une très haute priorité ne sera pas améliorer de façon significative le débit de ce genre de programmes, car il utilise probablement 99% du CPU, même sur la priorité d'inactivité. Une haute priorité est plus utile pour réduire la latence.
En effet, c'est seulement lorsqu'il est contention pour le PROCESSEUR qu'il a même des questions. Donc, merci de ne pas régler vos jeux de la Plus haute classe de Priorité. Je dis ça car il peut provoquer une priorité de l'inclinaison avec système de dépendances, il peut compter.
Juste par curiosité, pourquoi un programme qui trie les données ont besoin pour fonctionner à plus haute priorité?
Pour l'avenir, les googlers: Réglage d'une très haute priorité ne sera pas améliorer de façon significative le débit de ce genre de programmes, car il utilise probablement 99% du CPU, même sur la priorité d'inactivité. Une haute priorité est plus utile pour réduire la latence.
En effet, c'est seulement lorsqu'il est contention pour le PROCESSEUR qu'il a même des questions. Donc, merci de ne pas régler vos jeux de la Plus haute classe de Priorité. Je dis ça car il peut provoquer une priorité de l'inclinaison avec système de dépendances, il peut compter.
OriginalL'auteur john | 2011-03-07
Vous devez vous connecter pour publier un commentaire.
L'appel d'API Windows SetPriorityClass vous permet de changer la priorité du processus, voir l'exemple dans la documentation MSDN, et l'utilisation REALTIME_PRIORITY_CLASS pour définir la priorité la plus élevée:
Attention: si vous demandez le véritable priorité en temps réel, vous allez l'obtenir. C'est un nuke. Le système d'exploitation sans pitié donner la priorité à une priorité en temps réel fil, bien au-dessus de même niveau de l'OS de traitement des données, disque-cache rinçage, et d'autres de haute priorité de tâches critiques. Vous pouvez facilement verrouiller l'intégralité de votre système en temps réel si votre thread(s) de vidange de votre capacité d'UC. Soyez prudent lorsque vous faites cela, et, sauf si absolument nécessaire, envisager l'utilisation de priorité élevée à la place. Plus d'informations
OriginalL'auteur lunixbochs
La fonction suivante sera de faire le travail.
Par exemple, pour définir la priorité de Excel à soufflet normal, utilisation:
PROCESS_ALL_ACCESS
? Sûrement, leSetPriorityClass
appel d'API ne nécessite rien de plus quePROCESS_SET_INFORMATION
.Ok - Merci. Je mettrai à jour. Vous avez raison!
OriginalL'auteur Michael Haephrati
Après (ou avant) SetPriorityClass, vous devez définir l'individu priorité de thread pour atteindre le maximum possible. En outre, un autre jeton de sécurité est nécessaire pour la priorité en temps réel de la classe, alors assurez-vous de le prendre (si accessible). SetThreadPriority est le secondaire API après SetPriorityClass.
Désolé, vous êtes sur votre propre à partir d'ici. Il est facile de trucs. Vous avez sûrement compris, ou déplacé sur, maintenant.
OriginalL'auteur dyasta