2009-01-06 6 views
5

J'ai un script python qui peut approcher la limite de 2 Go sous Windows XP. Sur une machine avec 2 Go de mémoire physique, cela peut à peu près verrouiller la machine, même si le script Python fonctionne en dessous de la priorité normale.Taille du processus dans XP à partir de Python

Existe-t-il un moyen en Python de trouver ma propre taille de processus?

Merci, Gerry

+0

640 ko devrait suffire à tout le monde: D –

+0

Même s'il y a une réponse à votre question, vous pouvez jeter un autre coup d'œil à l'utilisation de vos ressources. 2G est juste trop IMO – Perpetualcoder

Répondre

2

essayer:

import win32process 
print win32process.GetProcessMemoryInfo(win32process.GetCurrentProcess()) 
1

En utilisant psutil https://github.com/giampaolo/psutil:

>>> import psutil, os 
>>> p = psutil.Process(os.getpid()) 
>>> p.memory_info() 
meminfo(rss=6971392, vms=47755264) 
>>> p.memory_percent() 
0.16821255914801228 
>>> 
0

Plutôt que de se soucier de limiter la taille de votre processus en cours d'exécution, il pourrait être préférable à la figure si toutes les données que vous stockez actuellement dans la mémoire doivent être en mémoire en tout temps.

Vous avez probablement beaucoup d'espace disque, et simplement en créant des fichiers temporaires (voir le tempfile module) il devrait y avoir amplement l'opportunité d'écrire sur le disque les données que vous n'utilisez plus pour le calcul courant. Vous pouvez ensuite le lire plus tard quand/si vous en avez besoin à nouveau. C'est (de manière simpliste) combien de bases de données fonctionnent.

Alors que le disque est considéré comme "lent" dans un sens de calcul, il est toujours très rapide et c'est un outil extrêmement utile lorsque vous travaillez avec de grands ensembles de données. Et comme vous définissez déjà la priorité du processus sur "Au-dessous de la normale", il ne semble pas que la vitesse soit un problème sérieux pour vous, alors que la mémoire l'est clairement.

Questions connexes