Python的内存管理一般考虑以下三个方面:
1)对象引用计数机制(四自增五自减)
2)垃圾收集机制(手动自动、生成回收)
3)内存池机制(大m,小p)
1)对象引用计数机制
Python中用于跟踪内存对象的使用引用计数的简单技术。count(a)可以检查对象a的引用计数,但是比正常计数大1,因为调用函数时传入了a,使a的引用计数增加了1
2)垃圾收集机制
吃多了总会发胖,Python也是如此。随着Python中的对象越来越多,它们占用的内存也越来越多。不过,您不必太担心Python的大小。它会在适当的时候“减肥”,启动垃圾收集,淘汰掉无用的对象。一个基本原理:当Python中一个对象的引用计数下降到0时,就意味着没有引用指向该对象和该对象。对象太变成了可以回收的垃圾
例如,一个new对象被分配了引用时,该对象的引用计数变为1。当该引用被删除时,该对象的引用计数变为1达到0时,该对象可以进行垃圾回收。
然而,减肥是昂贵且费力的。在垃圾收集期间,Python无法执行其他任务。频繁的垃圾回收显着降低了Python的工作效率。如果内存中的对象不多,则没有必要总是启动垃圾回收。
Python仅在某些条件下自动启动垃圾收集。Python运行时,会记录对象分配(object
allocation)和对象释放(objectdeallocation)的次数。当两者之间的差异超过某个阈值时,垃圾收集就会开始。
我们可以通过gc模块的get_threshold()方法显示阈值。
3)内存池机制
Python分为大小内存:(256KB是大小内存的限制)
1内存使用量malloc作业
2。使用内存池分配小内存
Python中的内存管理机制有两套实现。其中之一是针对小对象,如果大小小于256KB,Pymalloc会在内存池中申请空间。如果大小大于256KB,系统会直接执行malloc行为来申请磁盘空间。
不可变数据类型:当该数据类型的关联变量的值发生变化时。该数据类型对应的内存地址也称为不可变数据类型。
变量数据类型:当该数据类型对应的变量的值发生变化时。与该数据类型关联的内存地址称为变量数据类型。
显然,查询中给出的数据值发生了变化;因此,对应的内存地址也会发生变化。同时,在Python中,没有。布尔值细绳元组有6种数据类型:列表和字典。
Python的6种数据类型:Number;布尔值细绳元组列表和词典。由于计算机的计算基础是二进制的,任何计算机语言都会有这样的数据类型。是的,为了方便逻辑运算,我们还需要此类数据。该数据类型只有两个值,True和False,分别代表真和假。处理好事情Python语言严格区分大小写。
上一篇:python的内存机制
下一篇:python爆内存