garbage-collection相关内容

检查垃圾收集器是否可以获取对象

有没有办法检查垃圾收集器是否可以获取对象? 在我的代码中某处我有一个对象的引用: MyObject mo = myObject; 然后,通过 Eclipse 调试器,我获得了对象的内存位置.之后,我将引用设置为空: mo = null; 有什么方法可以检查之前引用的对象现在是否适合垃圾回收,或者是否有其他地方引用它? 非常感谢, 斯蒂芬 解决方案 您不能在运行时对 ..
发布时间:2022-01-16 10:23:47 Java开发

如何在 Go 中释放 http.Client?

我为HTTP2连接构建了一个http.Client,我需要做些什么来释放客户端和使用的资源? 解决方案 http.客户端 不需要任何特殊的方式来释放“使用过的".资源.当它变得无法访问时,它使用的内存将被垃圾收集器回收. http.Client 不存储连接或状态信息.文档甚至声明应该重用 http.Client: 客户端的传输通常具有内部状态(缓存的 TCP 连接),因此客户端 ..
发布时间:2022-01-16 10:23:41 其他开发

拥有一次性字段的类型应该是一次性的.如何解决这个警告?

我尝试在 VisualStudio 2012 中使用 Run Code Analysis 选项,结果我收到了警告 CA1001 拥有一次性字段的类型应该是一次性的在“DBConnectivity"上实现 IDisposable因为它创建了以下 IDisposable 类型的成员:“SqlConnection"、“SqlCommand". 我在 SO 中提到了一些问题,但我无法理解关于 IDis ..
发布时间:2022-01-16 10:23:31 C#/.NET

Java 任务控制堆配置文件

我正在使用 Java 7u40 附带的新 Java Mission Control Profiler,但我无法配置文件分配和收集对象统计信息.无论我做什么,我都无法在 Memory -> Object Statistics 窗口中看到任何统计信息. 以下命令启动集合: jcmd JFR.start 持续时间=60s 设置=配置文件名=alloc-prof.jfr Java Mi ..
发布时间:2022-01-16 10:23:23 Java开发

Java - 可以对正在执行方法的对象进行垃圾收集吗?

在 Java 中,我没有多想就做了以下事情: 公共类 Main {公共无效运行(){//...}公共静态无效主要(字符串[]参数){新的 Main().run();}} 但是,最近我开始不确定这样做是否安全.毕竟, Main 对象在创建之后就没有引用了(嗯,有 this 引用,但这算不算?),所以看起来有一个垃圾收集器可能会在对象执行过程中删除对象的危险.所以也许 main 方法应该是这样的: ..
发布时间:2022-01-16 10:23:10 Java开发

ThreadLocal 垃圾回收

来自 javadoc 只要线程处于活动状态且 ThreadLocal 实例可访问,每个线程都持有对其线程局部变量副本的隐式引用;在线程消失后,它的所有线程本地实例副本都将受到垃圾回收(除非存在对这些副本的其他引用). 由此看来,由 ThreadLocal 变量引用的对象似乎只有在线程死亡时才会被垃圾收集.但是,如果 ThreadLocal 变量 a 不再被引用并成为垃圾回收的对象怎么办 ..
发布时间:2022-01-16 10:23:04 Java开发

在运行时查找对对象的引用

我有一个对象,它永远存在.我正在删除所有我能看到的引用,在使用它之后,但它仍然没有被收集.它的生命周期非常复杂,所以我不能确定所有的引用都被清除了. if (container.Controls.Count > 0){var controls = new Control[ container.Controls.Count ];container.Controls.CopyTo(controls, ..
发布时间:2022-01-16 10:22:57 C#/.NET

停止的服务正在做持续的垃圾收集

我正在开发一个包含许多服务的应用程序.当我停止意图服务时,所有线程和服务都应该停止,但 UI 挂起并且 logcat 中出现以下错误: 2014-12-01 12:37:92I/art (32099):后台部分并发标记扫描 GC 释放 419756(33MB) AllocSpace 对象,15(4MB) LOS 对象,38% 空闲,25MB/41MB, 暂停 1.617ms 共 451.976m ..
发布时间:2022-01-16 10:22:48 移动开发

什么时候触发 Full GC?

据我了解: 次要 GC 发生在年轻一代的 GC 通常称为 Minor,因为它需要 更少 时间来完成,因为 live-set 通常很小(我说的是典型的 Java 应用程序,考虑到弱世代假设)和一个复制收集器,需要重新定位和重新映射的对象数量较少. 主要 GC 发生在老一代的 GC 通常称为 Major GC,因为它需要 更多 时间来完成,因为 live-set 大部分都很大( ..
发布时间:2022-01-16 10:22:32 Java开发

Android VM 是否可以在不杀死整个 Android 应用程序的情况下垃圾收集静态变量?

(标题具有误导性,因为垃圾收集器只收集对象,但我发现这个标题更直接) 假设我有一个 Android 应用程序,其中一个名为“userid"的静态变量位于一个名为 Global 的类中(在初始化时为 null). 如果我在 Android 应用程序生命周期中将“userid"变量设置为某个值,例如 Global.userid = “myid",那么当 Android 应用程序仍然存在时, ..
发布时间:2022-01-16 10:22:27 Java开发

使用 GC.AddMemoryPressure() 防止 OutOfMemoryException?

我目前正在调试一种方法,用于在将图像显示在系统中之前用特定文本标记图像. 标签方法现在是这样的: 私有静态图片 TagAsProductImage(图片图片){尝试{//为增加的内存压力准备垃圾收集器(500000 字节大约是 485 KB).//应该解决一些 OutOfMemoryExceptions.GC.AddMemoryPressure(500000);使用 (Graphics g ..
发布时间:2022-01-16 10:22:12 C#/.NET

为什么幻影引用在入队时没有被清除?

我们可以看到“幻影可达";与“无法访问"一样无法访问:§ 一个对象是幻象可达的,如果它既不是强、软或弱可达的,它已经被终结,并且一些幻象引用引用了它. 最后,一个对象是无法访问的,因此当它无法通过上述任何一种方式访问​​时,它就有资格进行回收. 现在,来自:http://download.oracle.com/javase/6/docs/api/java/lang/ref/Pha ..
发布时间:2022-01-16 10:22:04 Java开发

脚本运行时的php垃圾收集

我有一个在 cron 上运行的 PHP 脚本,最多可能需要 15 分钟才能执行.每隔一段时间,我就会让它吐出 memory_get_usage(),这样我就可以看到发生了什么.它第一次告诉我我的使用量是 10 兆.当脚本完成时,我的体重是 114 兆! PHP 是否在脚本运行时进行垃圾收集?或者所有这些记忆发生了什么?我可以做些什么来强制垃圾收集.我的脚本正在执行的任务是每晚将几千个节点导入 ..
发布时间:2022-01-16 10:21:39 PHP

python什么时候删除变量?

我知道 python 有一个自动垃圾收集器,因此它应该在不再引用变量时自动删除变量. 我的印象是局部变量(函数内部)不会发生这种情况. def funz(z):x = f(z) # x 是一个 np.array 并且包含很多数据x0 = x[0]y = f(z + 1) # y是一个np.array,包含很多数据y0 = y[0]# x 和 y 在这里仍然可用吗?返回 y0, x0 de ..
发布时间:2022-01-16 10:20:56 Python

如何在 Java 中清除软引用?

我有一个缓存,其中包含对缓存对象的软引用.我正在尝试为使用缓存的类的行为编写功能测试,专门用于清除缓存对象时发生的情况. 问题是:我似乎无法可靠地清除软引用.简单地用完一堆内存并不能解决问题:在清除任何软引用之前,我得到了 OutOfMemory. 有什么方法可以让 Java 更积极地清理软引用? 找到 这里: “虽然可以保证所有SoftReferences 将在之前被清除 ..
发布时间:2022-01-16 10:20:52 Java开发