【发布时间】:2012-05-21 14:17:11
【问题描述】:
如果我有一个垃圾收集器,它可以跟踪每个分配的对象,并在它们不再有可用的引用时立即释放它们,你还会有内存泄漏吗?
考虑到内存泄漏是没有任何引用的分配是不是不可能或者我错过了什么?
编辑:所以我算作内存泄漏的是您在代码中不再有任何引用的分配。您仍然参考的大量累积分配不是我在这里考虑的泄漏。
我也只是在谈论最先进的 G.C.,这已经有一段时间了,但我知道像循环引用这样的情况不会让他们绊倒。我不需要任何语言的具体答案,这只是来自我与朋友的对话。我们谈论的是 Actionscript 和 Java,但我不关心这些特定的答案。
Edit2:从它的声音来看,似乎没有任何原因代码可以完全失去引用分配的能力并且没有 GC 能够拾取它,但我仍在等待更多称重。
【问题讨论】:
-
“内存泄漏”的定义一点也不草率。我建议您通过引用来收紧定义。
-
尚未投反对票,但由于您没有提供 您的“内存泄漏”定义和您想到的 GC 类型,这并不奇怪。还要检查它是否与某种家庭作业无关,并在需要时添加“家庭作业”标签。
-
根本没有做作业,只是和朋友谈论actionscript和java,我不知道泄漏是否对他们来说是个问题。
-
我也更具体地了解了其他定义,谢谢。但是,是的,我一开始就被否决了,但它消失了..
-
我不认为“内存泄漏”特别模棱两可。本质上,如果程序需要无限量的内存来处理在某个点之后重复无限次的输入序列,则程序存在内存泄漏,即使这些输入只会使其进入有限数量的可观察状态。我想在某些情况下该术语可能不明确(例如,一个程序通过缓冲文件然后输出结果来确定文件中的行数是偶数还是奇数)。可以说,这样的程序只有两个可观察状态。
标签: memory-leaks garbage-collection