1

一位朋友正在用非英语语言写一本书,但在翻译垃圾收集 (GC) 时遇到了麻烦。另一方面,自动内存管理 (AMM) 的翻译效果很好。

维基百科关于 GC的文章指出 GC 是 AMM 的一种形式。同一篇文章还指出,引用计数 (RC) 是垃圾收集的一种形式。所以,看起来我们有 AMM 作为 GC 的超集,而 GC 作为 RC 的超集。但是,有许多非正式文本可以互换使用 GC 和 AMM。因此,似乎可以有把握地说,AMM(也称为 GC)是通过跟踪指针识别(不)可达对象或依赖引用计数来实现的。

我的问题是:是否有任何 AMM 技术不能归类为 GC?或者,等效地,GC 和 AMM 之间的区别是否合理?

请随时评论我对 AMM (GC) 分类的疯狂猜测 :-)

4

2 回答 2

2

通常情况下,这些术语没有官方定义。但是您可以考虑,例如,C++ 的RAII 惯用语是一种自动内存管理形式。它与引用计数或垃圾收集完全不同。

于 2013-01-05T20:05:11.833 回答
1

我认为这更多的是一个常见用法和读者期望的问题,而不是精确的定义。当然,任何自动内存管理技术都会“收集垃圾”,因此是 GC。但在实践中,如果你说“GC”,人们会认为你指的是具有更具体属性的东西(通常是:不确定的终结、未引用对象的自动检测、收集循环的能力),如果你不是,就会感到困惑.

于 2013-01-05T20:06:11.463 回答