python - 为python进程保留ram

标签 python windows-7 python-2.7

我有一个在多台机器上运行的 python 脚本(用 py2exe 制作的 exe)。这个 Python exe 周期性地做两件事;一个线程写入一个 py 文件以供进一步处理,而另一个线程使用 pyZmq 模块监听 tcp 端口。它已经完美运行了好几天,使用了大约 12Mo 的内存。

现在问题来了:这些机器还运行 3dsmax 渲染。 3dsmax 占用系统上所有可用的内存,只为我的脚本留下 4Mo 内存。在这种状态下,报告(写入 py 文件)线程正确运行,但监听 tcp 端口的线程不再工作(发送消息到机器未收到)。

但是,这个 python exe 进程以高优先级运行:

set_nice(psutil.HIGH_PRIORITY_CLASS)

那么,我如何为我的进程保留 14Mo 的 ram,以便没有其他正在运行的进程可以占用这个 ram?或者另一种避免 exe 将他的 ram“交给”其他进程的方法?

谢谢, 基布

最佳答案

您可以使用 Win32 调用 VirtualLock .我没有看到任何简单的 Python 示例,也没有方便使用的 Windows 机器,但它可能相对容易。

Python 之外 ProcessHacker似乎它可以做到,但我无法验证。

但总的来说,这是个坏主意。我认为您可能遇到了更严重的问题。祝你好运!

关于python - 为python进程保留ram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14999031/

相关文章:

python - factory_boy 工厂的多重继承——似乎只继承了第一个父级

python - 托盘图标应用程序的线程

filter - 在tasklist.exe中过滤不带通配符?

django - django queryset.values_list()中datetime字段到字符串的转换

python - 追踪 Python 2 中的隐式 unicode 转换

python - re.match 在 python 2.7 中不起作用

python - 如何在 Python 中通过 ZeroMQ PUB/SUB 从 Raspberry Pi 接收图像?

python - 映射 NumPy 值

c++ - Windows 7 NotifyIcon GUID 欺骗保护

visual-studio-2005 - 在 Windows 7 64 位机器上使用 Visual Studio 2005(32 位)