问题标签 [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 投票
1 回答
6565 浏览

ruby-on-rails - Ruby 中的对象销毁通知

我编写了一个自定义 Rails 模型。该模型由实际服务器而不是数据库表支持(因此它不继承自ActiveRecord::Base)。为了从服务器获取请求的信息,我打开了一个到它的 SSH 连接。因为 rails 不重用对象,所以会为收到的请求创建一个新对象以及与服务器的新 SSH 连接。为了减少服务器压力,我想在模型对象被垃圾收集之前关闭 SSH 连接。我想知道 ruby​​ 是否提供通知机制来通知对象它将被销毁?如果是这样,我可以使用此通知来了解何时关闭 SSH 连接。如果不是,当我知道我完成了该对象时,我将需要手动进行。

如果我需要手动处理这个问题,我可以显式销毁该对象吗?还是我能做的最好的是object = nil

0 投票
2 回答
8369 浏览

c# - 在类库中正确实现缓存以在 asp.net 应用程序中使用

我正在我在 asp.net 应用程序中使用的类库中实现缓存。

我使用静态方法将缓存对象创建为单例模式来更新缓存,该方法实际上只是用我需要缓存的数据集合加载成员变量/属性(当然有一些锁定逻辑)。我认为这是一个不错的方法,因为我可以通过调用来访问我的数据

我正在创建一个新的缓存对象来存储由某个键分区的大量数据。我要说的是我正在创建一个新的缓存,但是这个缓存不会一次加载所有数据,而是为每个访问的键存储一个集合。

这次提出了关于垃圾收集的问题。由于我正在存储大量数据,如果它突然被 gc'ed 会不会是一种浪费?由于它只是一个单例模式,因此无法确保数据保留在缓存中。

所以我的问题是 - 实现缓存来处理这种情况的最佳做法是什么?我真的不喜欢一个非常复杂的解决方案,而且我知道 System.Web 中有缓存,但这似乎有点“离题”,因为这只是一个类库,或者你怎么看?

0 投票
2 回答
1473 浏览

garbage-collection - 设置服务器或工作站 GC

如何配置应用程序,甚至整台机器,以使用 CLR 垃圾收集的服务器或工作站风格?

0 投票
6 回答
2973 浏览

.net - 如何提高垃圾回收性能?

可以使用哪些优化模式来提高垃圾收集器的性能?

我问的原因是我使用 Compact Framework 做了很多嵌入式软件。在慢速设备上,垃圾收集可能会成为一个问题,我想减少垃圾收集器启动的时间,当它启动时,我希望它更快地完成。我还可以看到,使用垃圾收集器而不是反对它可以帮助改进任何 .NET 或 Java 应用程序,尤其是重型 Web 应用程序。

这是我的一些想法,但我没有做过任何基准测试。

  • 重用临时类/数组(减少分配计数)
  • 将活动对象的数量保持在最低限度(更快的收集)
  • 尝试使用结构而不是类
0 投票
25 回答
636818 浏览

java - Java有析构函数吗?

Java有析构函数吗?我似乎无法找到任何有关此的文档。如果没有,我怎样才能达到同样的效果?

为了使我的问题更具体,我正在编写一个处理数据的应用程序,并且规范说应该有一个“重置”按钮,可以将应用程序恢复到其刚启动的原始状态。但是,除非应用程序关闭或按下重置按钮,否则所有数据都必须是“实时的”。

通常作为 C/C++ 程序员,我认为这很容易实现。(因此我计划最后实现它。)我构建了我的程序,使所有“可重置”对象都在同一个类中,这样我就可以在按下重置按钮时销毁所有“活动”对象。

我在想如果我所做的只是取消引用数据并等待垃圾收集器收集它们,如果我的用户反复输入数据并按下重置按钮,会不会出现内存泄漏?我也在想,既然 Java 作为一门语言已经相当成熟,应该有一种方法可以防止这种情况发生或优雅地解决这个问题。

0 投票
5 回答
3560 浏览

.net - 循环和垃圾收集

我正在开发一个 Web 应用程序,我遇到了以下情况。

我需要在循环中执行 a=Nothing 还是垃圾收集器会清理干净?

0 投票
1 回答
1373 浏览

.net - 为什么 .NET 应用程序的内存使用量在最小化时似乎下降了?

例如,启动 Paint.NET。然后用任务管理器查看它的内存使用情况:在我的电脑上,它使用 36Mb。

然后最小化 Paint.NET:现在它只需要 1Mb 多一点。

每个 .NET 应用程序都会发生这种情况。最小化 .NET 应用程序时会发生什么?GC 发生了吗?

0 投票
10 回答
30290 浏览

java - Java 中的循环引用

给定一个以复杂、循环的方式相互引用的类实例的聚合:垃圾收集器是否可能无法释放这些对象?

我隐约记得这是过去 JVM 中的一个问题,但我认为这在几年前就已经解决了。然而,对 jhat 的一些调查显示,循环引用是我现在面临的内存泄漏的原因。

注意:我一直认为 JVM 能够解析循环引用并从内存中释放这些“垃圾岛”。但是,我提出这个问题只是为了看看是否有人发现了任何例外。

0 投票
6 回答
9398 浏览

c# - 如何在 C# 中管理确定性终结?

我有一个 C# 对象,它的关键资源需要在非常特定的时间点刷新,这使得它不适合让垃圾收集器随时处理它,我应该如何处理这个问题?是否有类似 C++ 的 delete 运算符之类的东西可以让我在需要时手动终止该对象的实例?

0 投票
8 回答
33347 浏览

apache-flex - 在 AS3 中强制垃圾收集?

是否可以以编程方式强制在 ActionScript 3.0 中运行完整的垃圾回收?

假设我创建了一堆带有 eventListeners 的 Display 对象,并且一些 DO 已被删除,一些 eventListeners 已被触发和删除等等......有没有办法强制垃圾收集运行并收集所有内容可以收集吗?