如果我在具有例如 64Gb ram 的机器上使用 python(32 位版本),它是否能够使用这些 64Gb 的 ram。还是这取决于操作系统?
问问题
6381 次
2 回答
8
Python 本身不使用任何机制来扩展操作系统的每个进程的用户空间内存限制。然而,有这样做的模块和方法。所以答案是“取决于你愿意做多少工作”。
于 2013-09-04T12:13:53.080 回答
1
Python 可以使用分配给它的所有内存。操作系统分配内存,并且通常对每个进程都有限制,但是有一些命令可以控制这些限制。(例如,unix 上的“ulimit”)。但是大多数操作系统都使用虚拟内存,因此操作系统及其进程可以使用比可用物理内存更多的虚拟内存。因此,python 程序可能使用的不仅仅是物理内存。但是操作系统虚拟内存系统控制物理内存中的页面以及交换到磁盘的页面。因此,您可以“使用” 64 GB 的内存,但在任何时候只有一小部分最近使用的页面实际上在物理内存中。其中一些物理内存将保存操作系统中频繁运行的部分,例如那些虚拟内存分配功能。还:分配给进程的内存以不同的方式划分和分配(例如,堆与堆栈空间)。因此,一个内存可能会用完,而另一个内存仍有大量未使用的内存。因此,这取决于您所说的“使用”以及(正如其他帖子所说)“您愿意做多少工作”。您可能可以获得 64GB 分配给您,但除非您正在运行作为操作系统的一部分运行的嵌入式系统,否则您不太可能“使用”所有物理内存。
于 2013-09-04T12:55:44.337 回答