garbage-collection相关内容
我正在使用XNA的xbox360游戏。在Xbox上,垃圾回收器与PC上的垃圾收集器相比表现得相当差,因此将垃圾生成保持在最低限度,对于平稳执行的游戏至关重要。 我记得读一旦呼叫代表创建垃圾,但现在对我来说,生活中找不到任何引用代表创建垃圾。我只是做这个或代理混乱? 如果代表是凌乱的,提示解决方法的积分。 公共委托T GetValue(T value,T [] args);
..
代码 using System; 内部静态类Test { private static void Main() { try { Console.WriteLine(“{0, 10}:起点“,GC.GetTotalMemory(true)); Action simpleDelegate = SimpleDelegate; Console.WriteLine(“{0,
..
有一种在另一个进程或WinDBG内部的.NET进程中触发垃圾收集的方法?有一个受管理的调试助手强制收集当您移动本机/管理边界时, AQTime 似乎有按钮,表明它是这样做的,但我找不到任何有关如何做的文件。 解决方案 John Cocktoastan的答案是使用GC.Collect如果有的话,Visual Studio是最好的选择。 我仍然找不到在WinDBG下实际执行集合的替代方法
..
当我调试.net代码时,如何知道垃圾收集器何时运行? 我不想控制垃圾回收器何时运行。我只希望能够知道它什么时候运行。我有一些资源不足的代码。我知道资源没有被使用;我想知道GC何时运行以释放它们。 呵呵,我想到的资源是来自Sql连接池的连接,而不是内存:-) 解决方案 您必须使用.NET 4.0,您所要求的内容在耳机版本中不受支持。 本质上,您在循环中调用WaitForFu
..
我正在调试 GC 堆腐败,并进入了我的步骤想尝试在WinDbg + PageHeap + AppVerifier + GCStress下运行程序。 我在文章中找到了 软件崩溃:故障模块mscorwks.dll,版本1.1.4322.2379 我可以这样启用GCStress: reg.exe添加“HKLM\SOFTWARE\Microsoft\.NETFramework”/ f / v
..
我注意到我的应用程序正在泄漏内存。这可以在DDMS中看到,I 设法得到一个OutOfMemoryError。 我发现泄漏的来源。其中一个活动有一个线程在后台运行。该线程在 onDestroy()中停止。它完成运行,因为它可以在DDMS中看到。 现在,如果线程启动,则会发生泄漏,Activity在销毁后不会被垃圾回收,因为它是线程引用。 如果线程没有启动,一切都可以。 这里是一
..
是否可以查看在调用GC.Collect()?时收集的所有 .net对象? 我需要看看什么对象仍然在内存中,没有回收,所以我可以找到在哪里回收对象应该做的手动,但被程序员忘记了 我不想调用GC.Collect因为某人在某处忘记处理阻挡某些句柄的对象。 解决方案 我发现最好的方法是使用windbg和SOS(罢工之子)延伸。它有一个相当神秘的命令行,但它是非常强大的。它具有转储堆并将
..
为什么我不能使 head = null 删除完整的链接列表? 3 = head> 1> 2> 4> null 通过使 head = null ,JVM将会照顾它。由于头节点不被任何变量引用,所以应该是垃圾回收。 这个解决方案有什么问题? 注意:我知道删除完整链接列表的正确解决方案,但我很好奇为什么我不能只是使 head = null 删除完整的链表?
..
我有一些我经常处理的大(〜100 Mb)的文件。当我在处理过程中尝试删除不需要的数据结构时,内存消耗有点过高。我想知道是否有办法有效地操纵大数据,例如: def read(self,filename): fc = read_100_mb_file(filename) self.process(fc) def process(self,content): #做一些处理文件内容
..
这是我实现一种treap(隐式键和节点中存储的一些其他信息): http:/ /hpaste.org/42839/treap_with_implicit_keys 根据剖析数据,GC需要80%的时间用于此程序。据我所知,这是由于每次“修改”节点时,重新创建到根的路径上的每个节点。 有没有什么可以在这里提高性能,或者我必须下降到ST monad的领域? 解决方案 使用GHC 7.
..
尝试关闭我的问题对连接保持打开和超过最大池,我正在尝试重写用于连接到我们的数据库的函数。 该函数存在于本地编译的库中。使用反射器我可以看到代码看起来像这样: public SqlProvider([Optional,DefaultParameterValue(“”)] string StrConnection) { string str; if(StrConnection
..
我的python代码已经崩溃,错误'GC对象已经跟踪'。尝试找出调试此崩溃的最佳方法。 操作系统:Linux。 是否有适当的方法来调试此问题。 在下面的文章中有几个建议。 使用GDB的Python内存调试 不知道作者的方法是什么。 是否有一种方法可以在这种情况下生成可分析的内存转储。喜欢在Windows世界。 找到了一些关于这个的文章。但不完全回答我的问题:
..
我使用C#(使用XNA 4和MonoGame)。我使用内容管理器的 Load()方法加载资源(纹理,音频)。当这些资产不再需要时,我如何从内存中正确地 Unload()? 一旦对加载的资源的所有引用都被覆盖(或设置为null),资源将由Garbage Collector自动删除。这是正确的还是资产仍然锁定,因为它们是通过ContentManager加载的? 是否有必要调用'Conten
..
我很好奇在python中的 __ del __ 的细节,当和为什么它应该使用,它不应该使用。我学到了一个困难的方式,它不是真的像一个天真的预期从一个析构函数,因为它不是 __ new __ / __ init __ 。 class Foo(object): def __init __(self): self。 bar = None def open(self): if s
..
在一个相当复杂的应用程序中,我开发我在一个线程中有以下代码: long T = System.currentTimeMillis (); Thread.sleep(waitNow); T = System.currentTimeMillis() - T; if(T> waitNow * 5){ System.out.println(“Overslept”+ T +“>”+
..
我正在使用.NET框架4中的任务并行库(特别是 Parallel.For 和 Parallel.ForEach )然而,当我并行化一些任务,它们应该很容易并行化在双核机器上,我得到非常平庸的加速。 在对系统进行概要分析时,看起来好像有很多线程同步,因为垃圾回收器。我做了很多的对象分配,所以我想知道如何可以提高并发性,同时最小化我的代码重写。 例如,有一些在这种情况下有用的技巧:
..
本文此处建议使用 -XX:+ UseParNewGC “使用并发GC启用并行年轻代GC”。 我的困惑是,为了启用并行和并发GC,我应该 使用 -XX:+ UseParNewGC 或 同时使用 -XX:+ UseParNewGC 和 -XX:+ UseConcMarkSweepGC ? $ b b PS 我使用JVM 6。 解决方案 因为你链接的文档是一个1.4.
..
更新:这看起来像是内存问题。 3.8 Gb Hprof文件指示当发生此“阻塞”时,JVM正在转储其堆。我们的操作团队发现网站没有响应,采取堆栈跟踪,然后关闭实例。我相信他们在堆转储完成之前关闭了网站。日志具有无错误/异常/问题的证据 - 可能是因为JVM在生成错误消息之前已被杀死。 原问题 我们有一个最近的情况,应用程序出现 - 到最终用户 - 挂。我们在应用程序重新启动之前得到了一个堆栈
..
在此代码示例中,ExecutorService使用一个,并允许超出范围。 public static void main String [] args) { ExecutorService executorService = Executors.newFixedThreadPool(3); executorService.submit(new Runnable() { publ
..
在Java中,并发模式失败意味着并发收集器无法释放足够的内存空间,形成永久和永久的gen,并且必须放弃并让所有的 stop-the-world gc kick最终结果可能非常昂贵。 我理解这个概念,但从来没有对 有一个很好的全面理解A)什么可能导致并发模式失败和 B)什么是解决方案? 这种不清楚导致我编写/调试代码时没有提示,经常不得不从Foo到Bar购买性能标志,没有特殊
..