Python可以使用分配给它的所有内存。操作系统分配内存,通常每个进程都有限制,但是有命令可以控制这些限制(例如在Unix上使用'ulimit')。但是大多数操作系统使用虚拟内存,因此操作系统及其进程可以使用比可用物理内存更多的虚拟内存。因此,Python程序可能使用超过物理内存的内存。但是,操作系统虚拟内存系统控制哪些页面在物理内存中,哪些页面被交换到磁盘。因此,您可能正在“使用”64 GB的内存,但是最近使用的页面的只有一小部分实际上在任何时间都在物理内存中。某些物理内存还将保存频繁运行的操作系统部分,例如那些虚拟内存分配函数。此外:分配给进程的内存以不同方式分配和分配(例如堆空间与栈空间)。因此,一个可能会用完内存,而另一个仍有大量未使用的内存。因此,这取决于您对“使用”的定义以及(正如其他人所说)“您愿意做多少工作”。您可能会分配64GB,但是除非您在作为操作系统的一部分运行的嵌入式系统上运行,否则您不太可能“使用”所有物理内存。
gigabyte = ' ' * (1 << 30)
,然后使用chunk = gigabyte * 10
来分配 10GB 的内存。 - Alfe