Python 程序内存分析

软件的运行过程

软件是在计算机上运行,安装在计算机硬盘中的,计算机的基本组成如下图:

img

软件在计算机中运行时,是运行在系统的内存中的,平时使用电脑的时候打开软件较多的话,电脑会卡顿(内存空间不足!

编程语言编写的代码,就是在编写软件,所以代码的运行就是运行在内存中的。

Python解释器内存划分

Python代码在运行是,Python解释器会向操作系统申请运行内存,将代码加载到内存中运行,如图所示:

img

Python 解释器为了利用好有限的内存空间,将内存进行了如图的划分:

img

不可变类型 – 内存模型

不可变类型:数据在内存中一旦创建,就不能修改了。
Python 为了优化程序执行速度,将字符串、整数定义成了不可变类型,一旦声明出来,数据就不能修改了。

扫描二维码关注公众号,回复: 11096172 查看本文章

字符串操作

字符串是内存中使用特别的多的数据,所以 Python对字符串进行了优化,字符串是不可变数据类型,所以不能直接修改字符串内部的数据。

当我们通过变量修改数据时,内存中将变量指向了一个新的内存地址。原来的字符串数据依然存在,并没有修改。

img

整数操作

整数和字符串一样,在程序中也是一个经常操作的数据。所以也对整数进行了优化,Python 解释器在加载的时候,将 -5~256 的整数直接在内存中创建好了开发人员要使用的时候直接使用即可,不需要创建对象。
整数也是不可变数据,如果需要修改变量中的整数数据时,就是将变量指向了一个新的内存地址,原来在内存中的数据不会收到影响。

img

可变类型 – 内存模型

可变类型就是可以修改数据内部的数据,如列表
Python 中的列表可以存储多个数据,存储的多个数据可能要参与业务处理需要经常变化,所以列表中的数据在语法上被定义成了可以修改的数据。如图所示:

img

发布了44 篇原创文章 · 获赞 5 · 访问量 2402

猜你喜欢

转载自blog.csdn.net/qq_36078992/article/details/105375046
今日推荐