CPython的垃圾回收是否进行压缩?
问题内容:
我当时正在和一位朋友聊天,比较语言,他提到Java的自动内存管理优于Python的,因为Java的压缩比较好,而Python的则不是-
因此,对于长时间运行的服务器,Python是一个不佳的选择。
不言而喻,他的说法是正确的-CPython的垃圾回收器是否不会压缩内存,因此长时间运行的Python进程会随着时间的流逝越来越碎片化?
我知道运行CPython的垃圾收集器是可选的。通常,它使用自动引用计数进行自动内存管理,并且一旦引用计数达到零,就释放该对象-
因此,就释放对象而言,CPython的垃圾收集器唯一需要的是检测没有根集中的对象具有引用。但是我不知道除此之外是否进行任何压缩的细节。
如果不是,那么长时间运行的CPython进程如何解决内存碎片问题?
问题答案: