问题标签 [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.
.net - System.WeakReference 的实际使用
我了解System.WeakReference的作用,但我似乎无法掌握的是它可能有用的实际示例。在我看来,这门课本身就是一个黑客。在我看来,还有其他更好的方法可以解决在我见过的示例中使用 WeakReference 的问题。什么是您真正必须使用 WeakReference 的典型示例?我们不是在试图远离这种行为和使用这个类吗?
c# - 强制执行所需的函数调用
我在 C# 中有一个“状态”类,使用如下:
你明白了。MyFunction 的所有调用者都应该检查返回的状态:
然而,懒惰的呼叫者可以忽略状态。
或者
有可能使这成为不可能吗?例如抛出异常
一般来说:是否可以编写一个必须调用某个函数的 C# 类?
在 Status 类的 C++ 版本中,我可以对析构函数中的一些私有 bool bIsChecked 编写测试,并在有人不检查此实例时敲响一些铃声。
C# 中的等效选项是什么?我在某处读到“你不想在你的 C# 类中使用析构函数”
IDisposable 接口的 Dispose 方法是一个选项吗?
在这种情况下,没有可释放的非托管资源。此外,还不确定GC何时释放该对象。当它最终被处置时,是否仍然可以知道您在何时何地忽略了该特定状态实例?“using”关键字确实有帮助,但同样,懒惰的调用者不需要它。
java - 为什么 Java 和 Python 的垃圾回收方法不同?
Python 使用引用计数方法来处理对象的生命周期。因此,不再使用的对象将立即被销毁。
但是,在 Java 中,GC(垃圾收集器)会销毁在特定时间不再使用的对象。
Java 为什么选择这种策略,这样做有什么好处?
这比 Python 方法好吗?
caching - 托管语言的缓存方案
这主要面向桌面应用程序开发人员。
如何设计一个与 GC 配合得很好的缓存块?
我如何告诉 GC 我刚刚进行了缓存扫描,是时候进行 GC 了?
如何准确测量何时进行缓存扫描?
是否有任何我可以借鉴的预建缓存方案?
java - Java和手动执行finalize
如果我finalize()
从我的程序代码中调用一个对象,当垃圾收集器处理这个对象时,JVM是否还会再次运行该方法?
这将是一个近似的例子:
是否会显式调用finalize()
使JVM的垃圾收集器不在finalize()
对象上运行该方法m
?
java - 为什么不显式调用 finalize() 或启动垃圾收集器?
读完这个问题后,我想起了当我教 Java 时,被告知永远不要调用 finalize() 或运行垃圾收集器,因为“这是一个你永远不需要担心的大黑匣子”。有人可以将其推理归结为几句话吗?我确信我可以阅读 Sun 关于这个问题的技术报告,但我认为一个不错的、简短的、简单的答案会满足我的好奇心。
.net - 在 VB6 中重用变量是个好主意吗?
本质上,我想知道在 VB.NET 2005 中是否使用 sqlcommand 然后通过使用 NEW 重用它是错误的。会不会导致内存泄漏。
例如:
编辑:放入 try catch 以避免关于不使用它们的评论
.net - 垃圾回收:是否需要在 Dispose 方法中将大对象设置为 null?
null
实现方法时是否需要设置大对象Dispose()
?
vb.net - 句柄与 AddHandler
动态附加/分离事件处理程序有优势吗?
手动分离处理程序是否有助于确保没有对已处置对象的引用?
.net - SqlCommand.Dispose 是否关闭连接?
我可以有效地使用这种方法吗?
我担心的是:SqlCommand 的 Dispose 方法(退出 using 块时调用)是否会关闭底层 SqlConnection 对象?