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

python进阶教程3:内存池、内存分配优化

文章目录

      • 内存池技术
        • 1. 小整数对象
        • 2. 字符串驻留
          • 2.1 什么时候发生驻留
            • 2.1.1 编译时发生驻留,运行时不驻留
            • 2.1.2 只含大小写字母、数字、下划线时发生驻留
            • 2.1.3 字符串长度为0或1
            • 2.1.4 被sys.intern指定驻留
            • 2.1.5 用乘法(*) 得到的字符串
      • python 列表, 元组内存分配优化
        • 1. 空元组与空列表
        • 2. 小元组的分配优化
        • 3. 列表大小调整
      • Python在存储字符串时如何节省内存
        • 1. 字符串大小
          • 1.1 空字符串
          • 1.2 ascii码表里的字符
          • 1.3 汉字
          • 1.4 特殊字符
        • 2. 定长编码

内存池技术

如果对象频繁的创建和销毁,就会产生很多内存碎片,最终会影响的系统的性能。而实际应用中,我们确实在做这样的事情,尤其是对小整数的使用,比如1,2, 5 这些int类型的数据,几乎每一次使用for循环都会用到他们,ok,现在我们掌握了两个关键信息

  • 小的整数频繁被使用,频繁被销毁
  • 频繁的创建对象销毁对象将产生内存碎片
    那么,python的发明及维护人员允许这样的事情发生么?显然不能!
1. 小整数对象

如果没有什么特殊的机制,小整数的频繁创建与销毁将影响系统的性能,因此,python提供了对象池技术。int类型数据是不可变对象,这意味着它可以被共享,在python启动之后,就会在内存中申请一片内存,将频繁使用的小整数存储在这里,在整个程序运行期间,这些小整数都一直存在,不会被销毁,对他们的使用,仅仅增加了他们的引用计数而已。

有多少整数被缓存了呢,这个范围很小,[-5, 257), 你可能会对这个小整数范围表示有异议,这很正常,每个人对频繁使用的小整数有自己的理解,所以,如果你希望扩大这个范围,可以修改python的源码,然后重新编译,不过这很费力气。

我们可以在python交互式解释器里来验证这个小整数缓存池是否真实的存在

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

相关文章:

  • 网站流程图容桂品牌网站建设优惠
  • 程序与工业:从附庸到共生,在AI浪潮下的高维重构
  • 免费的制作手机网站平台wordpress dux主题设置首页
  • 口碑好的网站定制公司wordpress mdtf
  • 网站建设 开票全国网络公司大全
  • 站群系统破解版昆明百度推广优化排名
  • 快速建站系统网站游戏网站怎么自己做
  • 公司网站要备案么上海ktv最新通知
  • Rust 中的路由匹配与参数提取:类型安全的 HTTP 路径解析艺术
  • 电商网站开发 文献综述wordpress插件汉化下载
  • 最常用的网站推广方式代做网站收费标准
  • Slicer中VolumeNode与切片视图实现的机制
  • 仓颉编程(22)扩展
  • 电子商城网站开发项目描述wordpress图片轮播
  • wordpress建站多个域名网络运营是干什么的
  • 高端网站建设制作网站过期了怎么办
  • 专业公司网站建设公司做网站找谁公司做网站找谁
  • Java基础——常用API
  • 【001】Java开发环境
  • linux网站建设技术指南推广普通话的标语
  • 大专人力资源专业毕业生能做 HR 助理吗?入门条件有什么?【一文说清楚】
  • 淘宝网站怎么做的邯郸手机网站开发价格
  • 【王树森深度强化学习】基本概念 Deep Reinforcement Learning (1/5)
  • 做网站首页网络广告策划与设计
  • 阿里云云通信发布“智能联络中心2.0”与“Chat App AI助理”:两大新品驱动企业用户沟通迈向智能化
  • 网站建设必须要服务器吗织梦后台怎么做网站地图
  • 哈尔滨门户网站建设遵义网站制作费用
  • Arcgis表格数据导入+可视化--小白教程(以景观多样性指数为例)
  • 做瞹视频网站哪里看企业网站设计与实现论文
  • 网站设计的知识技能广东网站建设怎么收费