美文网首页工作生活
python 内存管理-深入底层

python 内存管理-深入底层

作者: 大白python | 来源:发表于2019-07-01 17:06 被阅读0次
python 内存管理-深入底层

对于一切以C/C++语言为基础的语言,都离不开对内存的管理。

python底层解释权是C语言,它内部有一套自已的内存管理方案。

这套管理方案,从表层代码去理解,即是python一切皆对象objcet,标记于名称name来参与程序运作;创建一个区域a作对象,标记url;参与运算后,创建一个新的区域b存放运算结果,重新将标记url关联到新区域b,区域a或已释放。

这套管理方案,从底层框架初步去理解,即是会经过多层申请,图示有6层。也就是说,要创建一块区域来存对象,需要经过6层申请。

python 内存管理-深入底层

现咱初步了解这6层申请的步骤:

  • 最底层开始,也就是图中的 -2 层,就是原始的物理存储,包含主存与二级存储;

  • 到-1 层是我们的操作系统层,系统内核负责对物理存储进行管理和分配;

  • 来到 0 层,这一层负责向操作系统申请内存,典型的如 C 语言的 malloc 库,Python 运行时需要的内存最终要通过这一层从操作系统申请;

  • 0 层往上才是 Python 运行时的内存管理层级。

  • 第 1 层中提供的PyMem 相关 API 主要是为了屏蔽不同平台 malloc/free 的差异,比如对于 malloc(0),有的系统返回 NULL,有的系统返回一个指针但是指向的地方没有内存。解决这个问题的方法简单粗暴,就是不允许分配 0 内存,至少分配 1,PyMem_MALLOC(0) 会被转化成 malloc(1)。

  • 第 2 层从第 1 层获取内存,它会组织,及分配给第 3 层的各种对象,以及各种垃圾回收,这也是咱刚说的表层内存管理方案的理解。

PS:我大白,先理解python内存管理到此阶段,更深入的底层理解,在深入学习python后再来学了,毕竟现重点是基础。

100分大神,80分大牛,60分大白,能用,够用,就好

相关文章

  • python 内存管理-深入底层

    对于一切以C/C++语言为基础的语言,都离不开对内存的管理。 python底层解释权是C语言,它内部有一套自已的内...

  • Android性能优化-内存泄漏的几个案例

    JVM内存管理 Java采用GC进行内存管理。深入的JVM内存管理知识,推荐《深入理解Java虚拟机》。 关于内存...

  • Python深入06 Python的内存管理

    语言的内存管理 语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是J...

  • Jvm虚拟机原理分析性能调优

    核心技术①深入字节码底层剖析JVM内存结构②JVM垃圾收集机制与性能调优③深入理解Java内存模型JMM④深入汇编...

  • python 内存分配和垃圾回收

    内存分配 Python中的内存管理机制的层次结构提供了4层 最底层则是C运行的malloc和free接口 第一层则...

  • python的垃圾回收机制

    大家好,很多人说python得益于其自动垃圾回收机制,使得开发人员无需过分关注底层的内存管理,确实,python是...

  • 底层-内存管理

    CADisplayLink、NSTimer使用注意 CADisplayLink、NSTimer会对target产生...

  • iOS 引用计数理解

    最近在研究内存管理,所以看了很多runtime底层的代码,越深入探索越觉得自己在理解上还是出现了部分偏差,现在重新...

  • python 深入理解迭代器

    更深入理解 Python 中的迭代 深入探讨 Python 的 for 循环来看看它们在底层如何工作,以及为什么它...

  • python内存管理机制

    Python内存管理机制 Python内存管理机制主要包括以下三个方面: 引用计数机制 垃圾回收机制 内存池机制 ...

网友评论

    本文标题:python 内存管理-深入底层

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