У меня есть скрипт Python, который может приблизиться к пределу процесса 2 ГБ под Windows XP. На машине с 2 ГБ физической памяти это может в значительной степени заблокировать машину, даже если скрипт Python работает с приоритетом ниже обычного.
Есть ли в Python способ узнать размер моего собственного процесса?
Спасибо, Джерри
Даже если бы на ваш вопрос можно было найти ответ, возможно, вы захотите еще раз взглянуть на использование ваших ресурсов. 2G - это слишком ИМО






пытаться:
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), должно быть достаточно возможностей для записи на диск любых данных, которые вы больше не используете для текущего расчета. Затем вы можете прочитать его позже, когда / если он вам снова понадобится. Это (упрощенно) количество работающих баз данных.
Хотя диск считается «медленным» с вычислительной точки зрения, он по-прежнему очень быстр и является чрезвычайно полезным инструментом при работе с большими наборами данных. И поскольку вы уже устанавливаете приоритет процесса на «Ниже нормального», это не звучит так, как будто скорость должна быть для вас серьезной проблемой, в то время как память явно является проблемой.
640 кб должно хватить всем: D