内存如何在Python中运行?

时间:2017-09-08 15:18:42

标签: memory memory-management

我提前为这个天真的问题道歉。

想象一下,某种语言的程序会说Python会创建一个列表并不断向其中添加元素。这个程序不能永远存在,因为这些列表存储在计算机内存中的某个位置,这是有限的(我的计算机上有12 GB RAM)。在什么时候Python会告诉我,我已经超出了计算机的内存限制?

接下来,假设我在某个时候终止该程序。列表怎么了?它是否仍然存储在内存中,还是被删除并释放空间?

1 个答案:

答案 0 :(得分:1)

Memory management是操作系统(OS)的任务之一,例如, Linux,Windows,macOS。

Python程序将继续向列表中添加元素,直到操作系统拒绝请求更多内存为止。这可能在达到12 GB之前发生,例如,如果管理员已配置per-process memory limit。所有现代操作系统也可以配置为use parts of the disks for memory,因此程序也可以获得超过12 GB的数据。

当程序终止时,操作系统释放程序使用的所有内存。但是,这并不意味着内存被清除,只是标记为可用。如果您存储了值" hello-world"在您的列表中,它仍然可以在RAM(或on the disk)中找到。