Limitation ressources processeur [PYTHON] - Python - Programmation
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
Marsh Posté le 27-04-2005 à 14:53:18
pardon, je me suis trompé.
os.nice() n'est disponible que sous _Unix_, pas Windows
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.
Marsh Posté le 27-04-2005 à 14:55:39
OS en bois
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 ?
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. |
Marsh Posté le 27-04-2005 à 14:58:58
ReplyMarsh 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 ?
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.
Marsh Posté le 27-04-2005 à 15:37:42
t'as qu'à faire un programme qui mange moins de CPU c'est tou.
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.
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.
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
Marsh Posté le 27-04-2005 à 15:42:12
ReplyMarsh 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.
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.
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
Marsh Posté le 27-04-2005 à 16:20:18
Mais non, quand ton code est mauvais, c'est la faute de l'OS.
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. |
tu l'a même pas vu mon code !
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 |
je faisait surtout référence a la fonction nice
Marsh Posté le 27-04-2005 à 16:52:49
fargo_01 a écrit : OK, j'avais pas compris l'utilisation de nice. |
tu crois que les utilisateurs du SETI font comment ?
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
Marsh Posté le 28-04-2005 à 20:19:02
Pour le faire en Python sous Windows, en utilisant PyWin32:
Code :
|
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.
@ +
Marsh Posté le 03-05-2005 à 13:02:49
minable ... en gros tu faisais tourner le truc dans le debugger ...
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
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
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