广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件专业 > Python专业 > 正文

Python 如何管理内存?

作者:张荣德发布时间:2022-11-25分类:Python专业浏览:445


导读:Python内存管理的细节取决于实现。Python的标准实现CPython使用引用计数来检测不可访问的对象,并使用另一种机制来收集引用循环,定期执行循环检测算法来查找不可访...

Python 内存管理的细节取决于实现。Python 的标准实现 CPython 使用引用计数来检测不可访问的对象,并使用另一种机制来收集引用循环,定期执行循环检测算法来查找不可访问的循环并删除所涉及的对象。gc 模块提供了执行垃圾回收、获取调试统计信息和优化收集器参数的函数。
但是,其他实现(如 Jython 或 PyPy ),)可以依赖不同的机制,如完全的垃圾回收器 。如果你的 Python 代码依赖于引用计数实现的行为,则这种差异可能会导致一些微妙的移植问题。
在一些 Python 实现中,以下代码(在 CPython 中工作的很好)可能会耗尽文件描述符:

for file in very_long_list_of_files:f = open(file)c = f.read(1)

实际上,使用 CPython 的引用计数和析构函数方案, 每个新赋值的 f 都会关闭前一个文件。然而,对于传统的 GC,这些文件对象只能以不同的时间间隔(可能很长的时间间隔)被收集(和关闭)。
如果要编写可用于任何 python 实现的代码,则应显式关闭该文件或使用 with 语句;无论内存管理方案如何,这都有效:

for file in very_long_list_of_files:with open(file) as f:c = f.read(1)



Python专业排行
标签列表
网站分类
文章归档
最近发表