IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础回顾 垃圾回收机制 -> 正文阅读

[Python知识库]Python基础回顾 垃圾回收机制

1. python内存管理机制(自动)

引用计数:

每个变量存储对象地址时,引用计数都会自增1,
每个变量与对象引用断开时,引用计数都会自减1。
如果引用计数为0,对象被释放。
缺点:循环引用

标记清除:

扫描内存,查看是否存在无法访问的内存空间。
缺点:耗时长

分代回收:

将内存分为"年轻代",“中年代”,“老年代”。
每代内存告急时,都会采用标记清除:将有用的数据升代。

内存优化:

尽少产生垃圾,对象池,手动回收(慎用)

2. 对象池:每次创建对象时,都会判断池中是否具有相同对象

如果有,则直接返回该对象地址
如果没有,则开辟空间创建新对象。
优点:提高内存的利用率

3. 函数参数

实际参数:调用函数时

位置实参:函数名(数据1,数据2)
序列实参:函数名(*序列)
关键字实参:函数名(形参名1=数据1,形参名2=数据2)
字典实参:函数名(**字典)

形式参数:创建函数时

默认参数:def 函数名(形参名1=默认值,形参名2=默认值)
位置形参:def 函数名(形参名1,形参名2)
星号元组形参:def 函数名(args)
命名关键字形参:def 函数名(
,形参名1,形参名2)
def 函数名(*args,形参名1,形参名2)
双星号字典形参:def 函数名(**kwargs)

# 1.  引用计数
list01 = [1,2,3]
list02 = list01
list03 = list01
list04 = list01
# 此时列表[1,2,3]对象引用计数为4
list01 = []
# 此时列表[1,2,3]对象引用计数为3
del list02,list03
# 此时列表[1,2,3]对象引用计数为1
list04 = 0
# 此时列表[1,2,3]对象引用计数为0,列表[1,2,3]对象被释放


# str_result = ""
# for item in range(1000):
#     # ""  "0" --> 产生新对象
#     # "0"  "1" --> 产生新对象
#     # "01"  "2" --> 产生新对象
#     str_result += str(item)
# print(str_result)


str_result = []
for item in range(1000):
    # ""  "0" --> 产生新对象
    # "0"  "1" --> 产生新对象
    # "01"  "2" --> 产生新对象
    str_result.append(str(item))
print(str_result)


# 循环引用
list01 = []
list02 = []
list01.append(list02)
list02.append(list01)
del list01,list02


# 2. 对象池:每次创建对象时,都会判断池中是否具有相同对象
#           如果有,则直接返回该对象地址
#           如果没有,则开辟空间创建新对象。
#      优点:提高内存的利用率
a = ["a"]
b = ["a"]
c = ["a"]
print(id(a),id(b),id(c))
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章           查看所有文章
加:2022-05-05 11:14:27  更:2022-05-05 11:19:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:06:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码