代码之家  ›  专栏  ›  技术社区  ›  Justin Ethier

cpython-在内部,堆栈和堆中存储了什么?

  •  16
  • Justin Ethier  · 技术社区  · 14 年前

    在C_中,值类型(例如:int、float等)存储在堆栈中。方法参数也可以存储在堆栈上。然而,大多数其他东西都存储在堆中。这包括列表、对象等。

    我在想,凯普顿在内部也做同样的事情吗?它存储在堆栈上的是什么?它放在堆栈上的是什么?

    2 回复  |  直到 14 年前
        1
  •  20
  •   John Feminella    14 年前

    cpython实现中的所有python对象都放在堆中。您可以详细阅读python的内存管理工作原理 here 在文档中:

    python中的内存管理涉及一个私有堆 包含所有python对象和数据结构。 这个私有堆的管理由Python内存管理器在内部确保。python内存管理器有不同的组件,它们处理各种动态存储管理方面,如共享、分段、预分配或缓存。

    请注意,python本身只是一种语言,对于内存管理这样的内部机制应该如何工作没有任何说明;这是留给实现人员的一个细节。

        2
  •  12
  •   Alex Martelli    14 年前

    python的运行时只处理对对象的引用(这些对象都位于堆中):python堆栈上的内容(作为操作数和字节码操作的结果)总是 参考文献 (对于生活在别处的价值观)。