首页 > 解决方案 > 空闲运行的任何python代码都可以访问所有已安装的ram吗?

问题描述

我不介意计算速度慢,但内存不足导致我的计算机在某些程序运行时崩溃。

是否有任何 Python IDLE 程序能够访问所有已安装的 RAM 并在必要时使用它?

标签: pythonrampython-idlechannels

解决方案


哦......你混合了很多你还没有完全理解的概念。

我正在考虑购买一台新电脑(我的旧电脑是 kaput)。

如果它坏了,你应该修理它或买一个新的。

它向我解释了默认情况下程序如何在一个线程中运行,除非为更多线程编写。

由于 GIL(全局解释器锁),Python 程序将在一个线程上运行,这是真的。如果要使用更多 CPU,则需要使用multiprocessing库。

我不介意计算速度慢,但内存不足导致一些程序运行陷入困境[原文如此]

我假设您的意思是停止

我怀疑这是可能的。如果没有足够的物理 RAM,程序可能会变得非常慢,可能会降低 1000 倍。原因是 RAM 将被交换到磁盘并且该操作需要更长的时间。但它不应该完全停止。

“例如,四个双通道 RAM 是否可以与在 IDLE 中运行的 Python 程序一起使用?” 是我一直在考虑的。

是和不是。Python 不能直接访问物理 RAM。操作系统为应用程序提供虚拟 RAM。通常,如果没有其他理由反对它,操作系统将提供物理 RAM。因此,是的,更多的物理 RAM 通常会增加 Python 程序可用的物理 RAM。

是否有任何 Python IDLE 程序能够访问所有已安装的 RAM 并在必要时使用它?

不能。例如,32 位 Python 只能处理一个子集。但即使使用 64 位 Python,也会为操作系统保留一些内存。

可以分阶段计算和存储

要回答这个问题,我们需要知道您正在计算什么以及需要多少内存。通常,可以计算内存需求。Big-O 符号就是这样做的。通常,您可以为 CPU 补偿 RAM,反之亦然。

如果有足够的时间和驱动空间,是否有可能拥有足够的计算能力?

对于某些任务,永远没有足够的计算能力,例如暴力破解密码。同样,我们需要知道您要计算的内容。

如何进行?

首先,最好了解您的 PC 规格。你有多少 CPU 内核和多少 RAM?其次,查看任务管理器会显示有多少 RAM 正在使用、缓存和空闲?

CPU很可能大部分是空闲的(正如你所说,它可能只是8个中的1个)。您的 RAM 也很有可能仍然是空闲的。在这种情况下,您的算法很糟糕,例如陷入无限循环。

了解物理 RAM 和虚拟 RAM 之间的区别。用正确的术语说话。了解如何衡量两者。然后返回数字和源代码。

顺便说一句:你的电脑实际上是什么?你是如何诊断的?如果您的计算机没有做您认为应该做的事情,那可能只是程序中的一个错误。


推荐阅读