garbage-collection相关内容

如何避免长串的生活造成第2代垃圾回收

我有我的地方保留日志字符串循环缓冲区的应用程序。当日志已满,对于每一个新的插入,老弦将被释放的垃圾收集,然后他们在第2代内存。因此,最终的一代2 GC会发生,这是我想避免的。 我试图元帅串入一个结构。出人意料的是,我仍然得到第2代GC:秒。看来结构仍保持一定的参考字符串。填写以下控制台应用程序。任何帮助表示赞赏。 使用系统; 使用System.Collections.Generic; ..
发布时间:2016-09-29 13:25:10 C#/.NET

using语句围绕对话的形式,以确保垃圾收集

我们有一个Windows窗体应用程序包含了数以千计的形式。 许多都是暂时显示为通过ShowDialog的()方法的对话框。 这个应用程序已经问世多年,我们已经发现,许多的形式没有得到垃圾收集及时,由于形式不同的资源泄漏或控制它使用。 这是没有被妥善处理,但可能还有其他类型的资源泄漏尚未被定性GDI +资源特别是,我们发现的例子。 虽然解决这个正确的方法显然是要经过各种形式和 ..
发布时间:2016-09-29 13:20:26 C#/.NET

使用StringBuilder的删除方法更多的内存比创建循环中的一个新的StringBuilder效率?

在C#这是更多的内存效率:选项1或选项2 公共无效TestStringBuilder()$ B? $ b { //可能与几百项的集合: 的String [] = outputStrings新的字符串[] {“测试1”,“测试2”,“TEST3”}; //选项#1 StringBuilder的formattedOutput =新的StringBuilder(); 的foreac ..
发布时间:2016-09-29 12:35:01 C#/.NET

如何强制对象的垃圾收集你不能提领?

我们正在使用的EWS托管API,它调查的MS Exchange对于一个给定的时间间隔后新邮件。随着轮询呼叫( PullSubscription.GetEvents())的每次调用 - 微软的API是未能妥善处理的NetworkStream 并导致内存比例增加。这是以前这里讨论过,但从来没有得到解决。 。使用蚂蚁探查我们能够确定哪些对象是在内存中不断发展壮大,找出问题 现在,这个问题已被隔离 ..

单GC最大堆大小没有记载。它是安全生产中使用?

我需要设置一个上限由单声道使用的内存。 据的博客中有可能使用参数最大堆大小来帽内存使用情况。 根据尝试,并根据代码,它确实是我想要做什么。 但是,此选项的未记录 因此:这是安全的依靠此选项在生产中?(或者它也有缺点,我不看,例如像:不能保证仍然是单声道的未来版本) 解决方案 据记载,这里是得到的文档的一种方法:导出无效 MONO_GC_PARAMS ,开始单: 出 ..
发布时间:2016-09-29 11:18:47 C#/.NET

我怎样才能解决我的C#/ MVVM应用莫名ObjectDisposedExceptions?

我已经写了我的第一个MVVM应用程序。当我关闭应用程序,我经常用的ObjectDisposedException得到一个崩溃的原因。作为应用去世,应用程序窗口消失后立即出现崩溃。 得到一个堆栈跟踪很困难(的看我的其他问题),但最后我做到了,发现我的异常堆栈完全包含C#库(KERNEL32!BaseThreadStart,mscorwks!线程,mscorwks!WKS等)之内。 此外, ..
发布时间:2016-09-28 14:58:15 C#/.NET

.NET垃圾收集行为(与数据表OBJ)

我很奇怪,为什么创建一个非常简单的数据表,然后将其设置为空后做垃圾收集不清除由数据表所使用的所有内存。下面是一个例子。之前,该变量应该等于删除,但事实并非如此。 { 没过多久= 0,后= 0 ,移除= 0,累计= 0; 之前= GC.GetTotalMemory(真); DataTable的DT = GetSomeDataTableFromSql(); =后,GC.GetTo ..
发布时间:2016-09-28 14:30:08 C#/.NET

垃圾收集跨C#和C ++ / CLI对象

我目前正在研究使用C ++ / CLI弥合托管的C#和本地,非托管C ++代码之间的差距。我期待解决的一个具体问题是,在C#和C ++不同数据类型的转换。 在阅读起来就采用了这样的桥接方式和所涉及的性能问题,我想知道垃圾收集将如何工作。具体来说,垃圾收集器将如何处理两边创建的,如果他们被引用/摧毁了“彼岸”对象的清理工作。 到目前为止,我已经阅读计算器并的 MSDN ,这使得我相信,垃 ..
发布时间:2016-09-28 14:22:49 C#/.NET

避免单隐秘GC错误讯息话题

我目前运行在单声道(Mac OSX版),通过一个非常大的数据文件中读取和汇总后生成汇总统计的程序。 令人不解的,我得到的在程序中的某个点以下错误消息: 垃圾收集器无法分配16384字节的内存主要堆栏目 我希望的一个OOM异常,或者别的东西,我可以一起工作。我曾尝试与正在增加最大堆大小: 出口MONO_GC_PARAMS =最大堆大小=4克 但是,它缠告诉我,我需要将它 ..
发布时间:2016-09-28 13:49:01 C#/.NET

为什么终结呼吁对象

下面是表现出令人惊讶的定稿行为例子程序: 类的东西 { 公共无效DoSomething的() { Console.WriteLine(“有所作为”); } 〜事() { Console.WriteLine(“被叫终结”); } } 命名空间TestGC { 类节目 { 静态无效的主要(字串[] args) { 变种S =新的东西(); s.DoSometh ..
发布时间:2016-09-28 13:41:06 C#/.NET

WeakReference的行为当对象最终完成但尚未垃圾回收

下面是关于在C#/。NET对象终止和收集一个学术问题。背景阅读是C#语言规范,自动内存管理的第3.9节。 当有一个对象没有明确提及,就可能成为垃圾回收。它成为“符合销毁条件”。在未来的某个时候(例如,如果你强迫垃圾收集),对象的析构函数将被运行。 在析构函数,如果你一个参考保存的对象,该对象将被最终确定,但是将没有资格领取。这可能导致在它已经完成,但没有收集的状态的对象之中。该规范的3 ..
发布时间:2016-09-26 23:29:12 C#/.NET

转换方法静态方法时的内存占用

我开始使用ReSharper的,这表明当一个方法的可能的进行静态的。将转换几百方法静态方法增加了内存占用过大的时期 解决方案 没有 - ?更改为静态方法对记忆没有影响。 第一次一个类型引用(不论是静态还是非静态),任何静态成员被初始化和静态构造函数中运行。 不过,如果你只是考虑从非静态静态切换方式,这会对垃圾收集或全部的内存占用量没有影响。 您只需要担心内存占用如果您更改 ..
发布时间:2016-09-26 22:25:59 C#/.NET

FileSystemWatcher的一段时间后停止筹款活动

我们已经建立了一个侦听文件夹与 FileSystemWatcher的,当我们创建处理文件等窗口服务。但几天之后,事件停止工作。 是否有可能,它被垃圾收集器(GC)收集的? 是否GC收集它持有类(这是一个单)? 我应该使用弱事件? 请我有指事件中的错误被注销? 我怎么想的问题是,FSW有一个内部缓冲区,当它溢出的错误,采取这种一看的文章的报价代码来解决这个问题。结果 希望这有助于 ..

线程的创建范围和垃圾收集器

这会让垃圾收集任何区别,如果我们在方法范围,而不是在类范围声明一个线程,如: //方案1 公共类Foo { 公共美孚() { 新的Thread(()=> / *引擎* /){的IsBackground =真}。开始(); } } //方案2 公共类酒吧 { 私人只读主题_engineThread = NULL; 公开栏() { _engineThre ..
发布时间:2016-09-26 12:36:25 C#/.NET

是否使用委托创建垃圾

我工作的XBOX360游戏,使用XNA。在Xbox垃圾收集器进行相当差相比,在PC上的一个,所以保持产生最少垃圾的顺利进行游戏的关键。 我记得读一旦调用一个委托创建垃圾,但现在我的生活找不到代表产生的垃圾的任何引用。难道我只是做这件事还是代表凌乱? 如果代表们的建议变通方法凌乱,奖励积分。 公共委托牛逼的GetValue< T>(吨价,T []参数); 公共静态 ..
发布时间:2016-09-23 23:13:43 C#/.NET

在C#中使用终结的好样本

当我读到在C#中的内存管理的几篇文章,我被释放方法混淆。 有与之相适应的相关这么多复杂的规则。 例如,没有人知道什么时候终结将被调用,他们呼吁即使在构造函数代码抛出,CLR并不能保证所有的终结时调用程序shutdowt等。 有关哪些终结可以在现实生活中使用? 的 只是一个例子,我发现程序GC启动时,它会发出蜂鸣声。 你在代码中使用终结并可能有一些很好的样本? UP ..
发布时间:2016-09-23 22:55:33 C#/.NET

C#和.NET垃圾收集器的性能

我试图在C#和.NET一个游戏,我正打算实施更新在游戏世界中的游戏对象的消息。这些消息是C#的参考对象。 我想这种做法,因为做这种方式会更容易通过网络发送给他们,如果我希望游戏是多人。 但是,如果我有很多的消息,会不会是垃圾收集相当紧张?并不会影响到游戏?消息类本身与4或5人相当少至多。 这些消息将生成一对夫妇每秒钟在游戏世界中的每个对象。 解决方案 在以后的版本GC的, ..
发布时间:2016-09-23 21:45:18 C#/.NET

C#的行动,封闭,和垃圾收集

我是否需要设置MyAction为null,使垃圾收集将能够与这两种类别的继续? 我较少关注当这两个类是具有几乎相同的寿命。我的问题是比较合适的,当1级的寿命要长得多则Class2中或当Class2中的寿命要长得多则1级。 下面的代码剥离下来。 。假设两个1级和Class2中包含其他成员和方法,可能会影响其寿命 公共类的Class1:IDisposable的 { 公共动作< ..
发布时间:2016-09-23 20:49:03 C#/.NET