美文网首页Python
Python--内存分析和处理

Python--内存分析和处理

作者: 用1心 | 来源:发表于2018-08-22 20:36 被阅读0次

2018-08-22
1.1 必要性:
  软件程序在计算机及中的运行,主要是通过数据单元、控制单元、执行单元共同协作,完成程序处理数据的交互,达到程序处理数据的目的。
  在软件执行过程中,由于系统内存和CPU的资源非常有限,所以有效的分解软件中的各项数据,将不同的数据加载到不同的内存部分,以有效的运行程序,同时可以达到在一个计算机中更高效、运行更多软件的目的。

1.2 操作过程:
  python程序在运行时,主要是python解释器先从系统中申请需要的内存空间,在用来运行python软件。
  解释器会把申请的内存主要划分为以下几个部分,以达到节省内存资源的目的。

image.png

  栈内存区[stack]:用于直接分配数据,存储速度较快,数据储存不稳定法,适用于小数据块的快速存取,一般在程序中用于--存储变量数据。
  方法区[data]:主要用于加载小程序中使用的代码数据、二进制数据、方法数据等程序 运行需要的预加载数据。
  静态区[static]:主要用于加载存储程序中的一些静态变量、常量数据等。在python中,不可变数据类型的数据,也会存储到静态常量区内存中。
  堆内存[heap]:存储数据稳定持久,一般用于存储加载较为重量级的数据,如程序运行过程中的对象都是存在堆内存中的。

程序中变量和对象的基本表示方式:
  程序中建立一个Hero类,并创建hero对象。 内存的分配方式如下:


image.png

1.3 可变/不可变数据类型在内存中的分配:
  Python 根据数据是否可以进行更改,提供了两种不同的数据类型:
  可变数据类型:一般组合数据类型(列表、集合、字典等),或自定义数据类型都是可变数据类型
  不可变数据类型:一般基本数据类型都是不可变数据类型。

我们可以通过 id(变量名称) 查看对象在内存中的地址。
  可变数据类型在定义了数据之后,修改变量的数据,内存地址不会发生改变
  不可变数据类型是在定义了数据之后,修改变量的数据,变量不会修改原来的内存地址的数据,而是指向新的地址,原有的数据保留,这样更方便程序中基本数据类型的利用率。

image.png

2.1 代码和代码块
  python中最小的运行单元是代码块,每个代码运行会独立申请一次内存,在交互模式没有退出的操作过程中,遵循python的官方操作标准
如:对基本数据类型进行基本优化,将一定范围内的数据存储在常量区内以提升性能。

image.png

但在IDE开发模式下,代码封装在模块中,通过python命令运行模块时,模块整体作为一个代码块向系统申请内存并执行程序,执行过程中,对于基本数据类型进行缓存优化操作。
Pycharm工具代码测试:

image.png

相关文章

  • Python--内存分析和处理

    2018-08-221.1 必要性:软件程序在计算机及中的运行,主要是通过数据单元、控制单元、执行单元共同协作,完...

  • python基础->内存分析和处理->垃圾回收机制

    内存分析和处理 why:为什么要进行内存分析和处理?软件->一个完整的软件加载运行流程->基于硬件软件:处理数据-...

  • 内存分析和处理

    1. 程序内存浅析 一个软件要运行,需要将数据加载到内存中,通过cpu进行内存数据的读写,完成数据的运算。 1....

  • 关于python中 内存的处理与分析

    内存处理 关于内存的处理与分析 [if !supportLists]1. [endif]内存的分配 [if !su...

  • python内存分析和处理

    1内存分析和处理 .程序的运行离不开对内存的操作,一个软件要运行,需要将数据加载到内存中,通过CPU进行内存数据的...

  • python的内存分析和处理

    2.内存分析和处理程序的运行离不开对内存的操作,一个软件要运行,须将数据加载到内存中,通过CPU进行内存数据的读写...

  • 垃圾回收

    1.内存分析和处理 程序的运行离不开对内存的操作,一个软件要运行,需要将数据加载到内存中,通过CPU进行内存数据的...

  • 内存分析

    内存分析可以分为静态内存分析和动态内存分析;主要是利用Xcode自带工具进行内存泄露监测; 静态内存分析: 概念:...

  • python--处理 fasta 和 fastq 文件

    fasta文件格式:fasta 文件为一个 ID 对应一个 序列,可以是 转录本序列, 蛋白序列 ''' V350...

  • python--异常处理

    1.什么是异常? 异常:不正常的情况 不正常的情况,在程序中,会有两种体现 1.写错代码了!错误...

网友评论

    本文标题:Python--内存分析和处理

    本文链接:https://www.haomeiwen.com/subject/qtzyiftx.html