python内存分析和内存模型
python中常量区的对象是可以复用的,但是堆内存中的对象是不允许复用的。python认为如果字符串直接是字面量赋值,这样的数据是需要重复使用的,这样的数据一般都是动态变化的,不需要在内存中永久存储,所以运算得到的。程序软件在计算机中运行,需要运算的数据加载到内存中,由CPU从。内存中读取数据,然后进行运算,返回数据结果给内存。CPU中有寄存器,缓存,运算器,运算器负责运算的。S4的设计,是将S1
一、内存分析
程序软件在计算机中运行,需要运算的数据加载到内存中,由CPU从
内存中读取数据,然后进行运算,返回数据结果给内存。
DDR2
DDR3
1066mhz,1600hz,1866mhz
DDR4
2400MHZ,...
内存条的标压1.5V,低压1.35V
cpu负责从内存中读取数据,进行运算
CPU中有寄存器,缓存,运算器,运算器负责运算的。
如果CPU中一个寄存器对应一个运算器,属于单核单线程
如果CPU中两个寄存器对应一个运算器,属于单核双线程

运算器是不直接访问内存的,而是去访问寄存器或者缓存的
CPU读取数据速度:
机械硬盘<固态硬盘<内存<缓存<寄存器
1.内存模型
2.字符串内存
变量是最不稳定的,随时改变,所以放在栈内存中。


看看下面这个,体会体会

S4的设计,是将S1和S2拼接放在堆内存中!!!
python中常量区的对象是可以复用的,但是堆内存中的对象是不允许复用的。
堆内存的数据会进行垃圾回收。
python认为如果字符串直接是字面量赋值,这样的数据是需要重复使用的,
就直接在常量区开辟内存空间存放数据;如果是通过运算得到的字符串数据,
这样的数据一般都是动态变化的,不需要在内存中永久存储,所以运算得到的
字符串数据会在堆内存中分配。
3.整数的内存
同一个代码块中内存管理

不同的代码块中内存管理


4.列表的内存

五、python的拷贝
1.拷贝就是复制
2.深拷贝和浅拷贝
3.引用赋值
引用赋值,两个变量指向同一个数据
浅拷贝的内存模型


深度拷贝的内存模型


六、元组的内存模型

七、递归函数内存分析

函数内存模型分析:

函数的声明和调用过程:


八、dict字典内存模型使用

九、内存模型

上述代码的内存模型:

name = "TOM"
def my_function():
name = "TOM"
print("function:",name)
my_function()
print("outer:",name)

函数是局部栈内存,文件是全局栈内存!
九、python的重点
1.python的高级特性
2.函数式编程
匿名函数,装饰器
3.面向对象编程
4.正则表达式
5.多线程与多进程
6.协程
7.异步IO
8.python作图
十、python的内存管理
1.整数在内存中分布情况
2.float在内存中分布情况
3.bool在内存中分布情况
4.string字符串在内存分布情况和内存分析
5.list列表在内存中分布情况和内存分析
6.tuple元组在内存中分布情况和内存分析
7.set集合在内存中分布情况和内存分析
8.dict字典在内存中分布情况和内存分析
9.python对象在内存中分布情况和内存分析
10.python中类在内存中分布情况和内存分析
11.pthon函数在内存中分布情况和内存分析
12.python中深度拷贝和浅拷贝的内存分析



魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)