|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 36 ![]() |
Bonjour,
J'ai un script python (en exe avec py2exe) qui tourne en permanence sur des machines. Tout marche très bien, sauf quand on lance une autre appli qui prend toute la ram disponible. A ce moment là, mon exe python a moins de ram, genre de 20Mo il passe à 4Mo. Et là certaines fonctions marchent toujours, mon exe tourne donc, mais d'autres fonctions, notamment écouter sur un port tcp pour recevoir des commandes (avec zmq), ne marche plus. Alors peut-on réserver de la ram ? Ou empêcher windows de bouffer la ram de mon exe python ? Le tout en win7x64, python 2.7 x64 |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 710 ![]() |
Salut,
Citation:
Citation:
Par défaut, une application (Python ou pas) laisse faire l'OS. Pour changer ce défaut, il faut trouver comment raconter cela à l'OS (ce sont des appels systèmes). Attention à la petite notice concernant JOB_OBJECT_LIMIT_WORKINGSET. Puis appeler cela depuis Python via ctypes ou win32 is just SMOP. Désolé mais lire la doc, trouver comment tester que le code "fonctionne", puis coder, tester,... prend beaucoup plus de temps que de faire un plan de route. Peut être que d'autres ont ce genre de code dans un coin et seront ravis de le partager. - W
__________________
Architectures Post-Modernes |
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 36 ![]() |
Merci !!!! J'entrevois au moins une solution avec SetProcessWorkingSetSizeEx , je vais essayer çà !
Je vous tiens au courant, mais en attendant si qqlun a déjà bossé là dessus çà m’intéresse
|
|
|
00
|
|
|
#4 | ||
|
Invité régulier
![]() Inscription : août 2008 Messages : 36 ![]() |
J'ai çà qui fonctionne :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 36 ![]() |
bon en gros :
SetProcessWorkingSetSizeEx is only available in Vista and higher. SetProcessWorkingSetSize doesn't establish a hard limit on the working set. Donc la soluce au dessus ne marche pas, j'ai testé et la ram descend en dessous du min ... Je vais essayer en appellant la fonction dans kernel32.dll ... :/ |
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 710 ![]() |
(re-)Read the fine print que j'ai écrit: "Attention à la petite notice concernant JOB_OBJECT_LIMIT_WORKINGSET", elle explique ce que vous constatez.
- W
__________________
Architectures Post-Modernes |
|
|
00
|
|
|
#7 | ||
|
Invité régulier
![]() Inscription : août 2008 Messages : 36 ![]() |
ouch je suis largué là !
J'ai essayé çà mais impossible d'avoir qql chose, j'ai des erreurs 6 (access denied): Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Invité régulier
![]() Inscription : août 2008 Messages : 36 ![]() |
Bon désolé mais j'y connais rien en ctypes, çà dépasse mes compétences, j'ai passé la journée dessus et nada. J'ai des code d'erreur 0 donc command successful, mais çà change rien. Je cherche donc une autre solution.
Code :
|
||
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé
![]() Patrice BLANGARINTechnicien Help Desk, maintenance, réseau, système et + Inscription : juin 2006 Messages : 2 617 ![]() |
Bonsoir,
Pourquoi ne pas changer la priorité ? Code :
@+
__________________
Merci d'utiliser le forum pour les questions techniques. |
||
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 36 ![]() |
C'est déjà ce que je fais mais çà ne suffit pas.
C'est peu être lié au fait que j'ai 2 threads ? http://www.developpez.net/forums/d13...orite-threads/ |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com