问题标签 [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.
ruby-on-rails - Ruby 中的对象销毁通知
我编写了一个自定义 Rails 模型。该模型由实际服务器而不是数据库表支持(因此它不继承自ActiveRecord::Base
)。为了从服务器获取请求的信息,我打开了一个到它的 SSH 连接。因为 rails 不重用对象,所以会为收到的请求创建一个新对象以及与服务器的新 SSH 连接。为了减少服务器压力,我想在模型对象被垃圾收集之前关闭 SSH 连接。我想知道 ruby 是否提供通知机制来通知对象它将被销毁?如果是这样,我可以使用此通知来了解何时关闭 SSH 连接。如果不是,当我知道我完成了该对象时,我将需要手动进行。
如果我需要手动处理这个问题,我可以显式销毁该对象吗?还是我能做的最好的是object = nil
?
c# - 在类库中正确实现缓存以在 asp.net 应用程序中使用
我正在我在 asp.net 应用程序中使用的类库中实现缓存。
我使用静态方法将缓存对象创建为单例模式来更新缓存,该方法实际上只是用我需要缓存的数据集合加载成员变量/属性(当然有一些锁定逻辑)。我认为这是一个不错的方法,因为我可以通过调用来访问我的数据
我正在创建一个新的缓存对象来存储由某个键分区的大量数据。我要说的是我正在创建一个新的缓存,但是这个缓存不会一次加载所有数据,而是为每个访问的键存储一个集合。
这次提出了关于垃圾收集的问题。由于我正在存储大量数据,如果它突然被 gc'ed 会不会是一种浪费?由于它只是一个单例模式,因此无法确保数据保留在缓存中。
所以我的问题是 - 实现缓存来处理这种情况的最佳做法是什么?我真的不喜欢一个非常复杂的解决方案,而且我知道 System.Web 中有缓存,但这似乎有点“离题”,因为这只是一个类库,或者你怎么看?
garbage-collection - 设置服务器或工作站 GC
如何配置应用程序,甚至整台机器,以使用 CLR 垃圾收集的服务器或工作站风格?
.net - 如何提高垃圾回收性能?
可以使用哪些优化模式来提高垃圾收集器的性能?
我问的原因是我使用 Compact Framework 做了很多嵌入式软件。在慢速设备上,垃圾收集可能会成为一个问题,我想减少垃圾收集器启动的时间,当它启动时,我希望它更快地完成。我还可以看到,使用垃圾收集器而不是反对它可以帮助改进任何 .NET 或 Java 应用程序,尤其是重型 Web 应用程序。
这是我的一些想法,但我没有做过任何基准测试。
- 重用临时类/数组(减少分配计数)
- 将活动对象的数量保持在最低限度(更快的收集)
- 尝试使用结构而不是类
java - Java有析构函数吗?
Java有析构函数吗?我似乎无法找到任何有关此的文档。如果没有,我怎样才能达到同样的效果?
为了使我的问题更具体,我正在编写一个处理数据的应用程序,并且规范说应该有一个“重置”按钮,可以将应用程序恢复到其刚启动的原始状态。但是,除非应用程序关闭或按下重置按钮,否则所有数据都必须是“实时的”。
通常作为 C/C++ 程序员,我认为这很容易实现。(因此我计划最后实现它。)我构建了我的程序,使所有“可重置”对象都在同一个类中,这样我就可以在按下重置按钮时销毁所有“活动”对象。
我在想如果我所做的只是取消引用数据并等待垃圾收集器收集它们,如果我的用户反复输入数据并按下重置按钮,会不会出现内存泄漏?我也在想,既然 Java 作为一门语言已经相当成熟,应该有一种方法可以防止这种情况发生或优雅地解决这个问题。
.net - 循环和垃圾收集
我正在开发一个 Web 应用程序,我遇到了以下情况。
我需要在循环中执行 a=Nothing 还是垃圾收集器会清理干净?
.net - 为什么 .NET 应用程序的内存使用量在最小化时似乎下降了?
例如,启动 Paint.NET。然后用任务管理器查看它的内存使用情况:在我的电脑上,它使用 36Mb。
然后最小化 Paint.NET:现在它只需要 1Mb 多一点。
每个 .NET 应用程序都会发生这种情况。最小化 .NET 应用程序时会发生什么?GC 发生了吗?
java - Java 中的循环引用
给定一个以复杂、循环的方式相互引用的类实例的聚合:垃圾收集器是否可能无法释放这些对象?
我隐约记得这是过去 JVM 中的一个问题,但我认为这在几年前就已经解决了。然而,对 jhat 的一些调查显示,循环引用是我现在面临的内存泄漏的原因。
注意:我一直认为 JVM 能够解析循环引用并从内存中释放这些“垃圾岛”。但是,我提出这个问题只是为了看看是否有人发现了任何例外。
c# - 如何在 C# 中管理确定性终结?
我有一个 C# 对象,它的关键资源需要在非常特定的时间点刷新,这使得它不适合让垃圾收集器随时处理它,我应该如何处理这个问题?是否有类似 C++ 的 delete 运算符之类的东西可以让我在需要时手动终止该对象的实例?
apache-flex - 在 AS3 中强制垃圾收集?
是否可以以编程方式强制在 ActionScript 3.0 中运行完整的垃圾回收?
假设我创建了一堆带有 eventListeners 的 Display 对象,并且一些 DO 已被删除,一些 eventListeners 已被触发和删除等等......有没有办法强制垃圾收集运行并收集所有内容可以收集吗?