自动内存管理==垃圾回收?

时间:2013-01-05 20:02:09

标签: memory-management garbage-collection

一位朋友正在用非英语写一本书,并且无法翻译垃圾收集(GC)。另一方面,自动内存管理(AMM)转换得非常好。

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

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

请随意评论我对AMM(GC)分类标准的猜测:-)

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我认为这比普通用法和读者期望更重要,而不是精确定义。当然,任何自动内存管理技术都“收集垃圾”,因此是GC。但实际上,如果你说“GC”,人们会认为你指的是具有更多特定属性的东西(通常是:不确定的终结,自动检测未引用的对象,收集周期的能力),如果你不是