使用引用计数存在弊端。最常提及的一种是循环引用:假设A引用B,B引用C和C引用B。如果A将其对B的引用删除,则B和C的引用计数仍为1,并且不会被删除与传统的参考计数。CPython(引用计数不是python本身的一部分,而是其C实现的一部分)使用单独的垃圾回收例程捕获循环引用,该例程定期运行…
另一个缺点:引用计数会使执行速度变慢。每次引用和取消引用对象时,解释器/
VM都必须检查以查看计数是否已降至0(如果已减少,则进行释放)。垃圾回收不需要这样做。
另外,垃圾回收可以在单独的线程中完成(尽管可能有些棘手)。在具有大量RAM的计算机上以及对于仅缓慢使用内存的进程,您可能根本不想做GC!就性能而言,引用计数可能会有一点缺点。



