当前位置: 首页 > news >正文

国外平面设计欣赏网站专业的建设企业网站

国外平面设计欣赏网站,专业的建设企业网站,购物车 信息技术分院网站后台设计课题组,网站关键词推广企业python-内存管理前言一、内存分配二、引用计数三、垃圾回收总结前言 在 Python 中,内存管理是由 Python 解释器自动处理的,开发者无需手动分配和释放内存 一、内存分配 python引入小整数池和简单字符串驻留区机制 小整数池 范围: [-5&…

python-内存管理

  • 前言
  • 一、内存分配
  • 二、引用计数
  • 三、垃圾回收
  • 总结


前言

在 Python 中,内存管理是由 Python 解释器自动处理的,开发者无需手动分配和释放内存

一、内存分配

python引入小整数池和简单字符串驻留区机制

小整数池
范围: [-5, 256]
如果赋值的数,在小整数池范围内,就直接将这个数赋值给变量,不会重新创建对象了

整数池

简单字符串驻留区
没有包含特殊字符的字符串,创建之后会存在内存缓存中
新建简单字符串对象,会先查看内存缓存中有没有这个相同的字符串。如果有,直接赋值,没有就新建

字符串驻留区


二、引用计数

每个对象都维护一个ob_ref的字段,记录该对象的引用

  1. 如果有新的引用过来,字段值加1
  2. 如果有引用被释放,字段值减1
  3. 该对象引用计数为0,那么该对象就会被释放
x = [1, 2, 3]  # 列表对象引用计数为1
y = x         # 引用计数为2
del x         # 引用计数为1
del y         # 引用计数为0,对象被释放

引用计数解决不了循环引用的问题

x = [1]
y = [2]
x.append(y)
y.append(x)
del x
del y
# 列表 A 和 B 的引用计数均为 1,但它们无法被程序访问
# 形成内存泄漏 -> 垃圾回收

三、垃圾回收

开启垃圾回收 – STW STOP THE WORLD

标记清除
遍历对象 标记为活跃或者不活跃 最后删除不活跃对象

分代回收

  1. 认为存活越久的对象,越不可能成为垃圾
  2. 将所有的新增对象划为0代对象,每次扫描都要检查0代对象
  3. 当0代对象经过10次扫描之后,依然存活,就变为1代对象,对0代对象扫描10次,才会扫描1代对象
  4. 当1代对象经过10次扫描之后,依然存活,就变为2代对象。对1代扫描10次,就会开启全盘扫描

总结

python的内存管理是以引用计数为主,标记清除和分代回收为辅的垃圾回收方式

http://www.dtcms.com/a/602882.html

相关文章:

  • 石材网站模板长春app定制
  • 天河网站建设哪个好wordpress 4.8 pdf缩略图
  • 网上发布信息的网站怎么做的软文营销公司
  • WordPress站点添加ssl证书网站图片命名规范
  • 广州网站制作开发建设网站需申请什么手续
  • [AI tradingOS] 认证与用户管理 | 2FA | TOTP | JWT
  • C语言编译时不检查语法正确性 | 如何通过编译器解决语法检查问题
  • 上海网站关键词排名优化报价北京做网站需要多少钱
  • 找高权重的网站做外链网页制作实践 做网站
  • 网站域名怎么写好动漫制作专业可以专升本吗
  • 石家庄专业建站公司怎么做网站卖车
  • 网站后台传不了图片网站制作成本包含
  • 如何安全配置Linux服务器【完整指南】
  • 娱乐网站名字有专业做网站的学校吗
  • 我想卖东西去哪个网站合肥网站建设 合肥网络推广
  • 易语言黑月编译器 | 提升开发效率的智能编程工具
  • 中国建设银行手机银行下载官方网站深圳建设工程交易中心主页
  • Go 语言结构体
  • 网站建设的平面设计个人网站建设需求说明书
  • next增加tailwindcss(v3版本)
  • 开源的Text-to-SQL工具WrenAI
  • 怎样做内网网站浏览器2345网址导航下载安装
  • Spring代理的创建时机
  • 哈尔滨网页设计网站模板射击官网
  • 【LVS高可用】Keepalived配置详解
  • 岳阳网站建设公司西安网页设计培训班价格
  • 加快网站访问速度上海新闻报道
  • 二 网站建设的重要性微信小程序推广方法
  • Flutter核心技术目录
  • 网站备案中心肇庆网站建设制作公司