Python垃圾回收机制(一)
来源:互联网 发布:企业内部社交网络系统 编辑:程序博客网 时间:2024/04/30 09:24
1. 小整数对象池
整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。
Python 对小整数的定义是 [-5, 257) 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,所有位于这个范围内的整数使用的都是同一个对象.
同理,单个字母也是这样的。
但是当定义2个相同的字符串时,引用计数为0,触发垃圾回收
2. 大整数对象池
每一个大整数,均创建一个新的对象。
3. intern机制
a1 = "HelloWorld"a2 = "HelloWorld"a3 = "HelloWorld"a4 = "HelloWorld"a5 = "HelloWorld"a6 = "HelloWorld"a7 = "HelloWorld"a8 = "HelloWorld"a9 = "HelloWorld"
python会不会创建9个对象呢?在内存中会不会开辟9个”HelloWorld”的内存空间呢? 想一下,如果是这样的话,我们写10000个对象,比如a1=”HelloWorld”…..a1000=”HelloWorld”, 那他岂不是开辟了1000个”HelloWorld”所占的内存空间了呢?如果真这样,内存不就爆了吗?所以python中有这样一个机制——intern机制,让他只占用一个”HelloWorld”所占的内存空间。靠引用计数去维护何时释放。
字符串(含有空格),不可修改,没开启intern机制,不共用对象,引用计数为0,销毁
阅读全文
0 0
- Python垃圾回收机制(一)
- Python垃圾回收机制
- Python--垃圾回收机制
- python垃圾回收机制
- Python 垃圾回收机制
- Python垃圾回收机制
- python垃圾回收机制
- Python垃圾回收机制
- python垃圾回收机制
- python垃圾回收机制
- [Python]垃圾回收机制
- Python 垃圾回收机制
- Python垃圾回收机制
- Python垃圾回收机制
- python-垃圾回收机制
- Python垃圾回收机制
- python垃圾回收机制!
- python-垃圾回收机制
- Chrome 设置主页无效一直是2345
- 如何使用 Android Studio Inspect Code ?
- Android:你要的WebView与 JS 交互方式 都在这里了
- 数据库中的左连接(left join)和右连接(right join)区别
- pat 1011. World Cup Betting (20)
- Python垃圾回收机制(一)
- 分页的sql语句
- 长链剖分之O(nlgn)-O(1)求k级祖先
- treeview动态加载树节点
- jdk配置成功,但是tomcat仍无法启动解决办法!(二)
- 使用Navicat 连接oracle “ORA-03135: Connection Lost Contact”
- SpringBoot学习-(十三)SpringBoot中建立WebSocket连接(STOMP)
- 简单的C语言结构体实现面向对象的方法
- 目前什么ip软件比较好用,国内ip最多呢