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

Python高级(四)_内存管理

Python高级-内存管理

第四章 内存管理

1、对象池

小整数池

系统默认创建好的,等着你使用

概述:整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 256] ,这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB(局部变量,闭包,全局,内建模块)中的哪个位置,所有位于这个范围内的整数使用的都是同一个对象。

a = 100
print(id(a))
del a
b = 100
print(id(b))
发现删除a后,b的地址依旧是删除之前的那个地址(是否删除,小整数都常驻内存)

大整数池

默认创建出来,池内为空的,创建一个就会往池中存储一个

intern机制

每个单词(字符串),不夹杂空格或者其他符号,且字符串没有超过256k,默认开启intern机制,共享内存,靠引用计数决定是否销毁

a = 'HelloWorld'
b = 'HelloWorld'
print(a is b)
a = 'Hello World'
b = 'Hello World'
print(a is b)

python中对大于256的整数,会重新分配对象空间地址保存对象;对于字符串来说,如果不包含空格的字符串,则不会重新分配对象空间,对于包含空格的字符串则会重新分配

2、垃圾收集

概述:

http://www.lryc.cn/news/398982.html

相关文章:

  • 关键路径-matlab
  • JavaDS —— 单链表 与 LinkedList
  • LangChain —— Message —— how to filter messages
  • conda install问题记录
  • 【python】IPython的使用技巧
  • 常用知识点问答
  • paddlenlp cpu windows 下测试gpt
  • uboot的功能
  • java导出word实现
  • Flink 提交作业的方式
  • JVM系列 | 垃圾收集算法
  • 深入理解Spring Boot中的事件驱动架构
  • Moldflow安装包下载:附网盘地址+详细教程步骤
  • 2024辽宁省数学建模B题【钢铁产品质量优化】思路详解
  • C++基础入门(上)
  • 基于深度学习的情感分析
  • mybatis 延迟加载
  • 使用QT5.14.2开发族谱管理软件过程记录
  • 【QT】布局管理器
  • 兼容问题---ios底部的安全距离css设置
  • python JSON Lines (JSONL)的保存和读取;jsonl的数据保存和读取,大模型prompt文件保存常用格式
  • Spring Boot中@Async注解的使用及原理 + 常见问题及解决方案
  • ubuntu基于cmakelist的Qt工程,如何将图片打包进二进制程序
  • Spring的启动流程refresh方法、配置类解析流程@Component、@Configuration、@Import、@Bean
  • 运算放大器(2)
  • 智能优化算法之模拟退火算法SA
  • 同时用到,网页,java程序,数据库的web小应用
  • 星环科技推出语料开发工具TCS,重塑语料管理与应用新纪元
  • 【ARM】MDK安装ARM_compiler5无法打开安装程序
  • PHP文字ocr识别接口示例、人工智能的发展