GC in C# and Python

      在C#和Python中都有GC,但是它们的实现完全不同。C#用的是传统的垃圾回收机制,主要是寻找能够从根集达到的对象,把这些对象标记为活的,然后清理其余对象;Python由于支持扩展模块(C/C++等),他的根集很难找全,因此Python使用引用计数机制来做垃圾回收。引用计数就存在循环引用的问题,参见How Python GC deal with reference-cycles?

 

参考资料:

MSDN: Garbage Collection

Stack Overflow: Difference between background and concurrent garbage collection? (C#)

Garbage Collection for Python

posted @ 2013-01-28 14:20  紫红的泪  阅读(443)  评论(0编辑  收藏  举报