Python是如何进行内存管理的?

题目
问答题
Python是如何进行内存管理的?
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

Python是如何进行内存管理的?


正确答案:

一、对象的引用计数机制

Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。

引用计数增加的情况:

1,一个对象分配一个新名称

2,将其放入一个容器中(如列表、元组或字典)

引用计数减少的情况:

1,使用del语句对对象别名显示的销毁

2,引用超出作用域或被重新赋值sys.getre f count( )函数可以获得对象的当前引用计数

多数情况下,引用计数比你猜测得要大得多。对于不可变数据(如数字和字符串),解释器会在程序的不同部分共享内存,以便节约内存。

二、垃圾回收

1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。

2,当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。然而由于每个对象都包含一个对其他对象的应用,因此引用计数不会归零,对象也不会销毁。(从而导致内存泄露)。为解决这一问题,解释器会定期执行一个循环检测器,搜索不可访问对象的循环并删除它们。

三、内存池机制

Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。

1,Pymalloc机制。为了加速Python的执行效率,Python引入了一个内存池机制,用于管理对小块内存的申请和释放。

2,Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的malloc。

3,对于Python对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池。也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。

第2题:

简单解释Python基于值的内存管理模式。


正确答案:Python采用的是基于值得内存管理方式,在Python中可以为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址;Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。

第3题:

如何对控制系统所需的内存量进行估算?


参考答案:在仅对开关量进行控制的系统中,可以用输入的总点数乘以10字/点+输出总点数乘以5字/点估算;计数器和定时器按照(3-5)字/个估算,有运算处理器的按(5-10)字/量估算。在有模拟量输入输出的控制系统中,可以按每输入(或输出)一路模拟量约需(80-100)字左右,有通信处理时按每个接口200字以上粗略估算。最后,按估算容量的50-100%留有裕量。

第4题:

Windows 下的内存是如何管理的?


正确答案:
 

第5题:

段式存储管理对与内存空间的共享与保护如何进行?


参考答案:(1)段的共享
如果多个用户进程或作业需要共享某段程序或数据,可以使用各自的段名,在自己的段表中填入内存中的共享段的起始地址,并设置适当的读写控制权,就可以做到共享一个内存段的信息。
(2)存储保护
在多道程序的情况下,为了保证程序顺利执行,必须实行对段的保护,一般可采用下列措施:利用段表及段长来实现段的保护,防止程序执行时地址越界;在段表中设有“存取权限”,对程序的访问权限进行各种必要的限制。

第6题:

查看对象内存地址的Python内置函数是__________。


正确答案:id()

第7题:

Python采用的是基于值得自动内存管理方式。

此题为判断题(对,错)。


正确答案:√

第8题:

Python里面如何生成随机数?


正确答案:

random模块

随机整数:random.randint(a,b):返回随机整数x,a<=x<=b

random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。

随机实数:random.random( ):返回0到1之间的浮点数

random.uniform(a,b):返回指定范围内的浮点数。

第9题:

用python语言编写程序的时候,需要考虑如何管理你的程序所使用的内存。()

此题为判断题(对,错)。


参考答案:×

第10题:

python如何进行单行注释?


答案:
解析:
# 单行注释