您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python是否有堆栈/堆,并且如何管理内存?

Python是否有堆栈/堆,并且如何管理内存?

如何在Python中管理变量和内存。

自动地!不,真的,您只是创建一个对象,Python虚拟机将处理所需的内存以及将其放置在内存布局中的位置。

它有堆栈和堆吗?用于管理内存的算法是什么?

当我们谈论cpython它时,使用 私有堆 来存储对象。从CPython C API文档中

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

内存回收主要通过 来处理。也就是说,Python VM保留一个内部日志,记录有多少引用引用了一个对象,并在没有更多引用引用该对象时自动对其进行垃圾回收。此外,还有一种机制可以通过检测对象的“孤岛”来中断循环引用(引用计数无法处理),这与尝试查找所有可到达对象的传统GC算法有些相反

请记住,此信息是 特定的。其他Python实现,比如pypyiron pythonjython当谈到自己的实现细节和其他人可能来自彼此之间以及与cpython的不同。为了更好地理解它,

有了这些知识,对于大量/数据处理的内存管理有什么建议吗?

现在我不能说这个,但是我确定NumPy(用于数字运算的最受欢迎的python库)具有可以优雅地处理内存消耗的机制。

python 2022/1/1 18:31:54 有193人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶