Bonjour,
Je cherche à savoir comment je peux limiter l'utilisation du CPU à une application C++.
Merci d'avance.
Bonjour,
Je cherche à savoir comment je peux limiter l'utilisation du CPU à une application C++.
Merci d'avance.
Bonjour,
la réponse est obligatoirement liée à la plateforme, ceci est donc indépendant du langage en lui-même (en tout cas je ne crois pas que le C++ dispose d'un mécanisme "cross-plateform" (portable) sur la gestion des priorités des Processus ou des Threads).
Sous Windows on peut abaisser ou élever la priorité d'un processus ou d'un thread avec l'API. Pour plus d'information voir GetPriorityClass/SetPriorityClass et GetThreadPriority/SetThreadPriority.
je travaille en environnement unix et j'aimerais faire en sorte qu'un processus s'arrête lorsqu'il dépasse un certain temps CPU.
merci.
Je suis pas sûr que ce soit à l'exe de gérer ça, et même, c'est un pricipe que je trouve assez discutable. Si personne n'utilise le CPU, pourquoi devrait-il se priver ? De même, s'il utilise 50%, mais qu'ils sont 10 à faire ainsi, ne devrait-il pas réduire sa consommation ?
Bref, je pense que l'utilisation des priorités c'est plus propre.
le problème en fait est que l'appli utilise 99 à 100% du CPU et ne se termine jamais.
donc je ne sais pas si une gestion de priorité servirait à quoi que ce soit.
Normalement, si tu définit une priorité basse avec l'API du système, ton programme tournera:
- à fond quand il sera le seul à tourner (enfin il ne sera jamais vraiment seul, donc il ne sera jamais à fond, à toi de jouer avec les priorités)
- au ralenti s'il y a beaucoup d'autres programmes qui tournent (car l'ordonnanceur ne lui donnera que très rarement la main, vu sa priorité)
Donc cette solution me parait appropriée ...
Comme le dit Aurelien.Regat-Barrel, pourquoi se priver d'utiliser les 100% quand personne n'utilise le CPU ?
Partager