[PYTHON] Limitation ressources processeur

Limitation ressources processeur [PYTHON] - Python - Programmation

Marsh Posté le 27-04-2005 à 14:50:09    

Bonjour.
 
Je développe actuellement un outil en python. Cet outil utilise 100% de mon cpu. Je dois le limiter à 50%, je recherche donc une manière simple d'effectuer cette limitation. J'ai trouvé la fonction os.nice() qui est utile, mais disponible uniquement sous Windows, et l'outil va tourner principalement sur cet os.
 
Quelqu'un a une idée à me soumettre ?
 
Merci

Reply

Marsh Posté le 27-04-2005 à 14:50:09   

Reply

Marsh Posté le 27-04-2005 à 14:52:19    

Citation :

J'ai trouvé la fonction os.nice() qui est utile, mais disponible uniquement sous Windows, et l'outil va tourner principalement sur cet os.
 


 
il est ou le problème :??:


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-04-2005 à 14:53:18    

pardon, je me suis trompé.
 
os.nice() n'est disponible que sous _Unix_, pas Windows

Reply

Marsh Posté le 27-04-2005 à 14:55:28    

Y'a pas de quota CPU sous Windows, juste des priorité. Tu peux abaisser sa priorité. Il utilisera 100% du CPU si aucun autre process ne tourne, et 0% si un autre process en a besoin.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 27-04-2005 à 14:55:39    

OS en bois  [:_jbm]


Message édité par black_lord le 27-04-2005 à 14:56:15

---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-04-2005 à 14:58:20    

HelloWorld a écrit :

Y'a pas de quota CPU sous Windows, juste des priorité. Tu peux abaisser sa priorité. Il utilisera 100% du CPU si aucun autre process ne tourne, et 0% si un autre process en a besoin.


 
Ca me convient tout à fait d'abaisser la priorité de mon processus. Je dois utiliser quoi ?

Reply

Marsh Posté le 27-04-2005 à 14:58:20    

HelloWorld a écrit :

Y'a pas de quota CPU sous Windows, juste des priorité. Tu peux abaisser sa priorité. Il utilisera 100% du CPU si aucun autre process ne tourne, et 0% si un autre process en a besoin.


[:plusun]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 27-04-2005 à 14:58:58    


 
Le vieux troll poilu des bois ... :D

Reply

Marsh Posté le 27-04-2005 à 15:31:06    

fargo_01 a écrit :

Ca me convient tout à fait d'abaisser la priorité de mon processus. Je dois utiliser quoi ?


 
Alors, plus personne ? [:androids974]

Reply

Marsh Posté le 27-04-2005 à 15:36:09    

Ca a trop d'intérrêt de limiter un processus à 50% quand y'a 100% de dispo, et de limiter 10 processus à 50% chacun.... Et personnelement j'ai du mal à bien cerner ce critère de poucentage de CPU.
M'enfin, il suffit que je me rappelle comment en TP on plantait quasi instantanément le PC des autres via ssh en executant un prog C de 2 lignes qui fait des fork et malloc en boucle pour me dire que ça aurait pu être pire.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 27-04-2005 à 15:36:09   

Reply

Marsh Posté le 27-04-2005 à 15:37:42    

t'as qu'à faire un programme qui mange moins de CPU c'est tou.

Reply

Marsh Posté le 27-04-2005 à 15:38:38    

L'intéret, c'est tout simplement de ne pas monopoliser le pc pendant l'execution du script python. Le but est pas de limiter a 50 %, mais de faire croire a l'utilisateur qu'il peut encore travailler pendant ce temps. Pour l'instant, je ne peux même pas ouvrir un explorateur pendant l'execution, c'est pour ça que je recherche quelque chose pouvant baisser la priorité de mon script python.

Reply

Marsh Posté le 27-04-2005 à 15:39:55    

Taz a écrit :

t'as qu'à faire un programme qui mange moins de CPU c'est tou.


 
Merci pour cette réponse constructive. J'ai des impératifs à respecter.

Reply

Marsh Posté le 27-04-2005 à 15:40:31    

Faut récupérer le thread principal de ton app python et baisser sa priorité
 
Va voir du côté du module threading


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 27-04-2005 à 15:42:12    

Code :
  1. start /LOW python mon_script.py


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 27-04-2005 à 15:43:59    

ok, merci, je vais tester ça de suite

Reply

Marsh Posté le 27-04-2005 à 16:02:54    

le nice, c'est pas un quota CPU, comme son nom l'indique, c'est juste que ton processus va se comporter gentillement avec les autres processus et passer son tour si y a du monde qui a du travail au portillon.
 
Et non, je me fous pas de toi. Sur une machine de bureau, y a rien de plus ridicule que de brider l'usage CPU : le nice c'est bien, y a pas de temps CPU gaché. Avec ton histoire de limiter à 50%, tu vas te retrouver à foutre des sleep() et ton appli va passer son temps à dormir tout ça pour que ...
 
Alors sérieusement, si tu veux réduire l'usage CPU de ton programme (en supposant que c'est un programme qui tourne en tache de fond), et bien y a rien d'autre à faire que l'optimiser.

Reply

Marsh Posté le 27-04-2005 à 16:17:41    

OK, j'avais pas compris l'utilisation de nice.
 
L'idée est vraiment de n'utiliser 100% du cpu que quand c'est nécéssaire, et surtout ne pas bloquer l'utilisateur. Je n'ai vraiment pas l'intention de brider l'utilisation du cpu.
 
Si seulement cet os était bien foutu, j'aurais même pas eu à me poser la question.
 
En tous cas, merci pour ces réponses.

Reply

Marsh Posté le 27-04-2005 à 16:18:31    

fargo_01 a écrit :

Si seulement cet os était bien foutu, j'aurais même pas eu à me poser la question.


bien sûr que si, le problème de priorités existe sur tous les OS [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 27-04-2005 à 16:20:18    

Mais non, quand ton code est mauvais, c'est la faute de l'OS.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 27-04-2005 à 16:38:30    

HelloWorld a écrit :

Mais non, quand ton code est mauvais, c'est la faute de l'OS.


 
 :na: tu l'a même pas vu mon code !

Reply

Marsh Posté le 27-04-2005 à 16:39:20    

masklinn a écrit :

bien sûr que si, le problème de priorités existe sur tous les OS [:spamafote]


 
je faisait surtout référence a la fonction nice

Reply

Marsh Posté le 27-04-2005 à 16:52:49    

fargo_01 a écrit :

OK, j'avais pas compris l'utilisation de nice.
 
L'idée est vraiment de n'utiliser 100% du cpu que quand c'est nécéssaire, et surtout ne pas bloquer l'utilisateur. Je n'ai vraiment pas l'intention de brider l'utilisation du cpu.
 
Si seulement cet os était bien foutu, j'aurais même pas eu à me poser la question.
 
En tous cas, merci pour ces réponses.


tu crois que les utilisateurs du SETI font comment ?

Reply

Marsh Posté le 27-04-2005 à 16:54:25    

J'y avait pas pensé à celle là :)

Reply

Marsh Posté le 27-04-2005 à 17:04:04    

fargo_01 a écrit :

je faisait surtout référence a la fonction nice


nice est simplement l'un des mécanismes de régulation de la priorité dispo sur Unix [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-04-2005 à 20:19:02    

Pour le faire en Python sous Windows, en utilisant PyWin32:

Code :
  1. from win32process import GetCurrentProcess, SetPriorityClass, IDLE_PRIORITY_CLASS
  2. SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS)

Reply

Marsh Posté le 29-04-2005 à 11:32:14    

merci

Reply

Marsh Posté le 03-05-2005 à 12:34:40    

Pour info, j'ai trouvé la source du problème.
 
La surconsomation de resources ne venait pas de mon sciprt python, mais de l'editeur, IDLE.
 
Une fois lance en ligne de commandes (et non pas via IDLE), plus aucun problème, l'execution est quasi transparente.
 
Si ca peut servir a qqun.
 
@ +

Reply

Marsh Posté le 03-05-2005 à 13:02:49    

minable ... en gros tu faisais tourner le truc dans le debugger ...

Reply

Marsh Posté le 04-05-2005 à 16:20:47    

lol, idle c'est pratique mais fo quand meme pas l'utilisé a toute les sauses

Reply

Marsh Posté le 07-05-2005 à 22:37:44    

Taz a écrit :

minable ... en gros tu faisais tourner le truc dans le debugger ...


 
J'adorerai toujours ta compréhension légendaire  :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed