码迷,mamicode.com
首页 > 编程语言 > 详细

python 垃圾回收

时间:2017-11-07 20:56:45      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:bsp   垃圾   数值   无法   释放   pytho   大整数   范围   intern   

1. 小整数对象池

整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。

Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,所有位于这个范围内的整数使用的都是同一个对象.

同理,单个字母也是这样的。

2. 大整数对象池

每一个大整数,均创建一个新的对象。

3. intern机制

靠引用计数去维护何时释放。

总结

  • 小整数[-5,256]共用对象,常驻内存
  • 单个字符共用对象,常驻内存
  • 单个单词,不可修改,默认开启intern机制,共用对象,引用计数为0,则销毁 
  • 字符串(含有空格),不可修改,没开启intern机制,不共用对象,引用计数为0,销毁 
  • 大整数不共用内存,引用计数为0,销毁 
  • 数值类型和字符串类型在 Python 中都是不可变的,这意味着你无法修改这个对象的值,每次对变量的修改,实际上是创建一个新的对象 

python 垃圾回收

标签:bsp   垃圾   数值   无法   释放   pytho   大整数   范围   intern   

原文地址:http://www.cnblogs.com/maxiaohei/p/7800837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!