Размер процесса в XP из Python

У меня есть скрипт Python, который может приблизиться к пределу процесса 2 ГБ под Windows XP. На машине с 2 ГБ физической памяти это может в значительной степени заблокировать машину, даже если скрипт Python работает с приоритетом ниже обычного.

Есть ли в Python способ узнать размер моего собственного процесса?

Спасибо, Джерри

640 кб должно хватить всем: D

Federico A. Ramponi 06.01.2009 22:57

Даже если бы на ваш вопрос можно было найти ответ, возможно, вы захотите еще раз взглянуть на использование ваших ресурсов. 2G - это слишком ИМО

Perpetualcoder 07.01.2009 00:52
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
5
2
462
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

пытаться:

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

Используя 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
>>> 

Вместо того, чтобы беспокоиться об ограничении размера вашего процесса во время выполнения, может быть лучше выяснить, действительно ли все части данных, которые вы в настоящее время храните в памяти, действительно должны быть в памяти все время.

Вероятно, у вас достаточно места на диске, и просто создав несколько временных файлов (см. модуль tempfile), должно быть достаточно возможностей для записи на диск любых данных, которые вы больше не используете для текущего расчета. Затем вы можете прочитать его позже, когда / если он вам снова понадобится. Это (упрощенно) количество работающих баз данных.

Хотя диск считается «медленным» с вычислительной точки зрения, он по-прежнему очень быстр и является чрезвычайно полезным инструментом при работе с большими наборами данных. И поскольку вы уже устанавливаете приоритет процесса на «Ниже нормального», это не звучит так, как будто скорость должна быть для вас серьезной проблемой, в то время как память явно является проблемой.

Другие вопросы по теме