python可以使用多少ram?

时间:2013-09-04 12:09:57

标签: python

如果我在具有64Gb ram的机器上使用python(32位版本),它是否能够使用这些64Gb的ram。或者这取决于操作系统?

2 个答案:

答案 0 :(得分:8)

Python本身并不使用任何机制来扩展操作系统的每进程用户空间内存限制。然而,存在模块和方法。所以答案是“取决于你愿意做多少工作”。

答案 1 :(得分:1)

Python可以使用分配给它的所有内存。操作系统会分配内存,并且通常每个进程都有限制,但是有一些命令可以控制这些限制。 (例如,unix上的'ulimit')。但是大多数操作系统都使用虚拟内存,因此操作系统及其进程可以使用比可用物理内存更多的虚拟内存。因此,python程序可能使用的不仅仅是物理内存。但OS虚拟内存系统控制物理内存中的页面以及将哪些页面换出到磁盘。所以你可以“使用”64 GB的内存,但是最近使用的页面中只有一小部分实际上在物理内存中。并且一些物理内存将保存经常运行的OS的一部分,如那些虚拟内存分配功能。另外:分配给进程的内存被分割并以不同的方式分配(例如堆与堆栈空间)。因此,当另一个内存中仍有大量未使用的内存时,可能会耗尽内存。所以它取决于你的意思是“使用”以及(正如其他人所说)“你愿意做多少工作”。您可能可以获得64GB的分配,但除非您运行的是作为操作系统一部分运行的嵌入式系统,否则您不太可能“使用”所有物理内存。