问题标签 [garbage-collection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6838 浏览

.net - System.WeakReference 的实际使用

我了解System.WeakReference的作用,但我似乎无法掌握的是它可能有用的实际示例。在我看来,这门课本身就是一个黑客。在我看来,还有其他更好的方法可以解决在我见过的示例中使用 Wea​​kReference 的问题。什么是您真正必须使用 Wea​​kReference 的典型示例?我们不是在试图远离这种行为和使用这个类吗?

0 投票
11 回答
547 浏览

c# - 强制执行所需的函数调用

我在 C# 中有一个“状态”类,使用如下:

你明白了。MyFunction 的所有调用者都应该检查返回的状态:

然而,懒惰的呼叫者可以忽略状态。

或者

有可能使这成为不可能吗?例如抛出异常

一般来说:是否可以编写一个必须调用某个函数的 C# 类?

在 Status 类的 C++ 版本中,我可以对析构函数中的一些私有 bool bIsChecked 编写测试,并在有人不检查此实例时敲响一些铃声。

C# 中的等效选项是什么?我在某处读到“你不想在你的 C# 类中使用析构函数”

IDisposable 接口的 Dispose 方法是一个选项吗?

在这种情况下,没有可释放的非托管资源。此外,还不确定GC何时释放该对象。当它最终被处置时,是否仍然可以知道您在何时何地忽略了该特定状态实例?“using”关键字确实有帮助,但同样,懒惰的调用者不需要它。

0 投票
9 回答
19727 浏览

java - 为什么 Java 和 Python 的垃圾回收方法不同?

Python 使用引用计数方法来处理对象的生命周期。因此,不再使用的对象将立即被销毁。

但是,在 Java 中,GC(垃圾收集器)会销毁在特定时间不再使用的对象。

Java 为什么选择这种策略,这样做有什么好处?

这比 Python 方法好吗?

0 投票
2 回答
99 浏览

caching - 托管语言的缓存方案

这主要面向桌面应用程序开发人员。
如何设计一个与 GC 配合得很好的缓存块?
我如何告诉 GC 我刚刚进行了缓存扫描,是时候进行 GC 了?
如何准确测量何时进行缓存扫描?

是否有任何我可以借鉴的预建缓存方案?

0 投票
3 回答
19591 浏览

java - Java和手动执行finalize

如果我finalize()从我的程序代码中调用一个对象,当垃圾收集器处理这个对象时,JVM是否还会再次运行该方法?

这将是一个近似的例子:

是否会显式调用finalize()使JVM的垃圾收集器不在finalize()对象上运行该方法m

0 投票
7 回答
15012 浏览

java - 为什么不显式调用 finalize() 或启动垃圾收集器?

读完这个问题后,我想起了当我教 Java 时,被告知永远不要调用 finalize() 或运行垃圾收集器,因为“这是一个你永远不需要担心的大黑匣子”。有人可以将其推理归结为几句话吗?我确信我可以阅读 Sun 关于这个问题的技术报告,但我认为一个不错的、简短的、简单的答案会满足我的好奇心。

0 投票
7 回答
757 浏览

.net - 在 VB6 中重用变量是个好主意吗?

本质上,我想知道在 VB.NET 2005 中是否使用 sqlcommand 然后通过使用 NEW 重用它是错误的。会不会导致内存泄漏。

例如:

编辑:放入 try catch 以避免关于不使用它们的评论

0 投票
6 回答
1703 浏览

.net - 垃圾回收:是否需要在 Dispose 方法中将大对象设置为 null?

null实现方法时是否需要设置大对象Dispose()

0 投票
7 回答
3472 浏览

vb.net - 句柄与 AddHandler

动态附加/分离事件处理程序有优势吗?

手动分离处理程序是否有助于确保没有对已处置对象的引用?

0 投票
4 回答
43826 浏览

.net - SqlCommand.Dispose 是否关闭连接?

我可以有效地使用这种方法吗?

我担心的是:SqlCommand 的 Dispose 方法(退出 using 块时调用)是否会关闭底层 SqlConnection 对象?