python内存管理

内存结构中分栈区间和堆区间,栈区间中内存是系统自动开启自动释放。堆区间的内存需要手动申请手动释放。但是目前绝大部分编程语言,都提供了一套属于自己的关于堆中的内存的管理方案 。python中垃圾回收机制是用来管理堆中的内存的释放

python中的数据都是存在堆中的,数据的地址都是在栈区间。

1.内存的开辟
python中将值赋给变量的是,会先在堆中开辟空间将数据存起来,然后再数据对应的地址返回给变量,存在栈中。
但是如果数据是数字和字符串,会先缓存区中查看这个数据之前是否已经创建过,如果没有就去创建空间存数据,然后将地址返回。
如果之前已经创建过就直接将之前的地址返回

2.内存的释放 --> 垃圾回收机制
系统每隔一定的时间就会去检测当前程序中所有的对象的引用计数值是否为0;
如果对象的引用计数是0对象对应的内存就会被销毁,如果不是0就不销毁

3.引用计数
每一个对象都有引用计数属性,用来存储当前对象被引用的次数。
可以通过sys模块中的getrefcount去获取一个对象的引用计数值

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • python内存管理是通过引用计数来实现的。当对象的引用计数为0时,会被gc回收。 为了探索对象在内存的存储,我们...
    冬季恋歌1218阅读 5,618评论 0 2
  • 在比较浅层次上我们通过说明如下问题来进一步深入了解python内存管理机制:Python中到底是“传引用”还是“传...
    tdeblog阅读 7,156评论 0 0
  • Python内存管理机制主要包括以下三个方面: 引用计数机制 垃圾回收机制 内存池机制 引用计数 举个例子说明引用...
    Gambler_194b阅读 2,934评论 0 1
  • python是动态类型,对象是用于存储数据。在python中,各种数字,字符串,列表,字典都是对象,相当于java...
    肥肥米怡阅读 4,483评论 0 3
  • October, 2013 Wednesday is no meeting day. Our team is ge...
    Aaven小书阅读 6,662评论 1 5