garbage-collection相关内容

使用委托创建垃圾

我正在使用XNA的xbox360游戏。在Xbox上,垃圾回收器与PC上的垃圾收集器相比表现得相当差,因此将垃圾生成保持在最低限度,对于平稳执行的游戏至关重要。 我记得读一旦呼叫代表创建垃圾,但现在对我来说,生活中找不到任何引用代表创建垃圾。我只是做这个或代理混乱? 如果代表是凌乱的,提示解决方法的积分。 公共委托T GetValue(T value,T [] args); ..
发布时间:2017-04-22 21:34:14 C#/.NET

外部触发.NET垃圾回收

有一种在另一个进程或WinDBG内部的.NET进程中触发垃圾收集的方法?有一个受管理的调试助手强制收集当您移动本机/管理边界时, AQTime 似乎有按钮,表明它是这样做的,但我找不到任何有关如何做的文件。 解决方案 John Cocktoastan的答案是使用GC.Collect如果有的话,Visual Studio是最好的选择。 我仍然找不到在WinDBG下实际执行集合的替代方法 ..
发布时间:2017-04-21 19:28:23 C#/.NET

.net垃圾收集器什么时候运行?

当我调试.net代码时,如何知道垃圾收集器何时运行? 我不想控制垃圾回收器何时运行。我只希望能够知道它什么时候运行。我有一些资源不足的代码。我知道资源没有被使用;我想知道GC何时运行以释放它们。 呵呵,我想到的资源是来自Sql连接池的连接,而不是内存:-) 解决方案 您必须使用.NET 4.0,您所要求的内容在耳机版本中不受支持。 本质上,您在循环中调用WaitForFu ..
发布时间:2017-04-18 04:12:15 C#/.NET

线程对象在完成后不会收集垃圾

我注意到我的应用程序正在泄漏内存。这可以在DDMS中看到,I 设法得到一个OutOfMemoryError。 我发现泄漏的来源。其中一个活动有一个线程在后台运行。该线程在 onDestroy()中停止。它完成运行,因为它可以在DDMS中看到。 现在,如果线程启动,则会发生泄漏,Activity在销毁后不会被垃圾回收,因为它是线程引用。 如果线程没有启动,一切都可以。 这里是一 ..
发布时间:2017-04-18 01:59:34 移动开发

垃圾收集如何调试?

是否可以查看在调用GC.Collect()?时收集的所有 .net对象? 我需要看看什么对象仍然在内存中,没有回收,所以我可以找到在哪里回收对象应该做的手动,但被程序员忘记了 我不想调用GC.Collect因为某人在某处忘记处理阻挡某些句柄的对象。 解决方案 我发现最好的方法是使用windbg和SOS(罢工之子)延伸。它有一个相当神秘的命令行,但它是非常强大的。它具有转储堆并将 ..
发布时间:2017-04-17 22:46:34 C#/.NET

只要使head = null删除单个链表?

为什么我不能使 head = null 删除完整的链接列表? 3 = head> 1> 2> 4> null 通过使 head = null ,JVM将会照顾它。由于头节点不被任何变量引用,所以应该是垃圾回收。 这个解决方案有什么问题? 注意:我知道删除完整链接列表的正确解决方案,但我很好奇为什么我不能只是使 head = null 删除完整的链表? ..
发布时间:2017-04-03 15:44:56 Java开发

内存使用在大型数据结构的操纵/处理中

我有一些我经常处理的大(〜100 Mb)的文件。当我在处理过程中尝试删除不需要的数据结构时,内存消耗有点过高。我想知道是否有办法有效地操纵大数据,例如: def read(self,filename): fc = read_100_mb_file(filename) self.process(fc) def process(self,content): #做一些处理文件内容 ..
发布时间:2017-04-03 13:38:54 Python

改进抓捕实施

这是我实现一种treap(隐式键和节点中存储的一些其他信息): http:/ /hpaste.org/42839/treap_with_implicit_keys 根据剖析数据,GC需要80%的时间用于此程序。据我所知,这是由于每次“修改”节点时,重新创建到根的路径上的每个节点。 有没有什么可以在这里提高性能,或者我必须下降到ST monad的领域? 解决方案 使用GHC 7. ..

我在一个C#函数适当地关闭这个SQL连接?

尝试关闭我的问题对连接保持打开和超过最大池,我正在尝试重写用于连接到我们的数据库的函数。 该函数存在于本地编译的库中。使用反射器我可以看到代码看起来像这样: public SqlProvider([Optional,DefaultParameterValue(“”)] string StrConnection) { string str; if(StrConnection ..

调试Python致命错误:GC对象已被跟踪

我的python代码已经崩溃,错误'GC对象已经跟踪'。尝试找出调试此崩溃的最佳方法。 操作系统:Linux。 是否有适当的方法来调试此问题。 在下面的文章中有几个建议。 使用GDB的Python内存调试 不知道作者的方法是什么。 是否有一种方法可以在这种情况下生成可分析的内存转储。喜欢在Windows世界。 找到了一些关于这个的文章。但不完全回答我的问题: ..
发布时间:2017-01-13 12:17:36 Python

垃圾收集器行为

我使用C#(使用XNA 4和MonoGame)。我使用内容管理器的 Load()方法加载资源(纹理,音频)。当这些资产不再需要时,我如何从内存中正确地 Unload()? 一旦对加载的资源的所有引用都被覆盖(或设置为null),资源将由Garbage Collector自动删除。这是正确的还是资产仍然锁定,因为它们是通过ContentManager加载的? 是否有必要调用'Conten ..
发布时间:2017-01-04 11:29:40 C#/.NET

如何在高度并发代码中提高.NET 4.0的垃圾回收器性能?

我正在使用.NET框架4中的任务并行库(特别是 Parallel.For 和 Parallel.ForEach )然而,当我并行化一些任务,它们应该很容易并行化在双核机器上,我得到非常平庸的加速。 在对系统进行概要分析时,看起来好像有很多线程同步,因为垃圾回收器。我做了很多的对象分配,所以我想知道如何可以提高并发性,同时最小化我的代码重写。 例如,有一些在这种情况下有用的技巧: ..

Java并发和并行GC

本文此处建议使用 -XX:+ UseParNewGC “使用并发GC启用并行年轻代GC”。 我的困惑是,为了启用并行和并发GC,我应该 使用 -XX:+ UseParNewGC 或 同时使用 -XX:+ UseParNewGC 和 -XX:+ UseConcMarkSweepGC ? $ b b PS 我使用JVM 6。 解决方案 因为你链接的文档是一个1.4. ..
发布时间:2016-12-26 17:53:03 Java开发

Java阻塞问题:为什么JVM块线程在许多不同的类/方法?

更新:这看起来像是内存问题。 3.8 Gb Hprof文件指示当发生此“阻塞”时,JVM正在转储其堆。我们的操作团队发现网站没有响应,采取堆栈跟踪,然后关闭实例。我相信他们在堆转储完成之前关闭了网站。日志具有无错误/异常/问题的证据 - 可能是因为JVM在生成错误消息之前已被杀死。 原问题 我们有一个最近的情况,应用程序出现 - 到最终用户 - 挂。我们在应用程序重新启动之前得到了一个堆栈 ..

如何减少java并发模式故障和过多的gc

在Java中,并发模式失败意味着并发收集器无法释放足够的内存空间,形成永久和永久的gen,并且必须放弃并让所有的 stop-the-world gc kick最终结果可能非常昂贵。 我理解这个概念,但从来没有对 有一个很好的全面理解A)什么可能导致并发模式失败和 B)什么是解决方案? 这种不清楚导致我编写/调试代码时没有提示,经常不得不从Foo到Bar购买性能标志,没有特殊 ..
发布时间:2016-12-26 14:43:05 Java开发