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