Tag: 垃圾收集

你需要处理的对象,并将其设置为空?

你是否需要处理对象并将它们设置为null,或者当垃圾收集器超出范围时将它们清理干净?

C#中强制垃圾收集的最佳实践

根据我的经验,似乎大多数人会告诉你,强制垃圾收集是不明智的,但是在某些情况下,如果你使用的是并不总是在第0代中收集的大对象,但是内存是一个问题,它可以强制收集? 有没有最好的做法呢?

什么时候可以调用GC.Collect?

一般的build议是,你不应该从你的代码中调用GC.Collect ,但是这个规则有什么例外? 我只能想到一些非常具体的情况下,强制垃圾收集是有意义的。 一个令人想起的例子是一个服务,它会间歇性地唤醒,执行一些任务,然后长时间睡眠。 在这种情况下,强制收集可能是一个不错的主意,以防止即将进行的闲置过程持续到所需的更多内存。 有没有其他的情况下可以调用GC.Collect ?

明确closures文件重要吗?

在Python中,如果你打开一个文件而不调用close() ,或者closures文件,而不是使用try – finally或者“ with ”语句,这是一个问题吗? 还是仅仅依靠Python的垃圾收集来closures所有文件就足够了? 例如,如果这样做: for line in open("filename"): # … do stuff … …这是一个问题,因为该文件永远不能closures,并可能会发生exception,防止它被closures? 或者for因为文件超出范围,它会在for语句结束时一定closures吗?

System.gc()什么时候做什么

我知道垃圾收集在Java中是自动的。 但是我明白,如果在代码中编写System.gc() ,那么Java VM可能会或可能不会在运行时决定在此时执行垃圾回收。 这是如何工作的? 当VM看到一个System.gc()时,决定做什么(或不这样做)什么基础/参数? 在这种情况下,有没有例子把它放在代码中是个好主意?

Java垃圾收集如何与循环引用一起工作?

根据我的理解,Java中的垃圾回收会清除某些对象,如果没有其他东西“指向”该对象的话。 我的问题是,如果我们有这样的事情会发生什么事情: class Node { public object value; public Node next; public Node(object o, Node n) { value = 0; next = n;} } //…some code { Node a = new Node("a", null), b = new Node("b", a), c = new Node("c", b); a.next = c; } //end of scope //…other code a , b和c应该被垃圾收集,但是它们都被其他对象引用。 […]

在JavaScript中删除对象

我对JavaScript的delete操作符有点困惑。 采取以下一段代码: var obj = { helloText: "Hello World!" }; var foo = obj; delete obj; 这段代码执行完毕后, obj是null ,但是foo仍然指向一个完全像obj 。 我猜这个对象是foo指向的同一个对象。 这使我困惑,因为我期望写入delete obj删除了obj在内存中指向的对象 – 不仅仅是variablesobj 。 这是因为JavaScript的垃圾收集器正在保留/释放的基础上,所以如果我没有任何其他的variables指向对象,它会从内存中删除? (顺便说一句,我的testing是在Safari 4中完成的。)

如何在Java中强制垃圾收集?

是否有可能强制在Java中进行垃圾收集,即使这样做很棘手? 我知道System.gc(); 和Runtime.gc(); 但他们只build议做GC。 我如何强制GC?

什么是JavaScript垃圾收集?

什么是JavaScript垃圾收集? 为了编写更好的代码,对于Web程序员来说,了解JavaScript垃圾收集有什么重要的意义?

什么时候在Java中调用finalize()方法?

我需要知道什么时候在JVM调用finalize()方法。 我创build了一个testing类,当通过覆盖它来调用finalize()方法时写入文件。 它没有执行。 有人可以告诉我为什么它不执行?