garbage-collection相关内容

C ++ 11垃圾收集器 - 为什么和如何

在 C ++ 11的语言功能列表中有: 对垃圾收集和基于可达性的泄漏的最小支持 检测 (但似乎没有在GCC和Clang中实现。) 为什么标准委员会引入了这种垃圾收集C ++ langauge功能? C ++真的需要一个GC吗?是不是RAII这样一个优秀的模式(可以统一用于内存和非内存资源,如套接字,文件,纹理...)? 一个GC破坏了使用RAII的C ++代码模式的 ..
发布时间:2016-10-22 17:30:36 C/C++开发

垃圾收集在C ++ 11

我一直在浏览并使用C ++ 11的不同功能,特别是在Visual Studio 2010中。 其中一个提到的是n2585:最少支持垃圾 收集和基于可达性的泄漏检测。 该提案允许在C ++ 11的框架中实现GC。但是提案本身并不意味着实现需要支持GC。一些库libc ++只是实现库函数作为无操作。 我很确定,在这一点上,你的情况下的记忆只是泄漏了。但请注意,GC发生时,析构函数并 ..

如何在C ++中实现垃圾收集

我看到一些关于实现GC在C中的一些帖子,有些人说这是不可能做到的,因为C是弱类型。我想知道如何在C ++中实现GC。 我想知道如何做到这一点。非常感谢! 这是我朋友告诉我的彭博面试问题。他当时做得很糟糕。我们想知道你的想法。 解决方案 C和C ++中的垃圾收集都是难题,原因如下: 指针可以类型转换为整数,反之亦然。这意味着我可以有一个内存块,只有通过获取一个整数,类型转换 ..
发布时间:2016-10-14 11:37:47 C/C++开发

C ++有垃圾收集器吗?

我目前正在阅读一篇未发表的硕士论文报告,我将提供反馈意见。 在报告中他们提到了本地C ++和托管C ++下的GC。我认为C ++没有任何标准的GC,我错了还是正确的? (他们没有提到Boehm-Demers-Weiser。) 在某些情况下,它们有一些问题。 解决方案 托管C ++(及其后续C ++ / CLI)当然对托管资源使用.NET垃圾收集(虽然原生资源不是垃圾收集的,必须 ..
发布时间:2016-10-14 11:01:03 C/C++开发

垃圾收集C ++中的库

有什么免费的和商业的垃圾收集库可用于C ++,每个的优点和缺点是什么? 我对来自实际的 没有必要详细说明与自动垃圾收集相关的通常权衡,但请提及所使用的算法(参考计数,标记和扫描,增量等),并简要总结后果。 解决方案 href =“http://hboehm.info/gc/”> Boehm收藏家在过去取得良好的成功。它是开源的,可以在商业软件中使用。 这是一个保守的收藏家 ..
发布时间:2016-10-13 10:07:11 C/C++开发

C ++中的垃圾收集 - 为什么?

我不断听到人们抱怨C ++没有垃圾收集。我也听说C ++标准委员会正在把它添加到语言。我恐怕我只是没有看到它的点。使用RAII与智能指针,消除了它的需要,对吗? 我唯一的经验与垃圾收集是在几个便宜的八十年代家用电脑,这意味着系统会冻结几秒钟每次都这样频繁。我相信自那以后它已经改善,但正如你可以猜到的,这并没有让我高度的意见。 垃圾回收的优点一个经验丰富的C ++开发人员? 解决方 ..
发布时间:2016-10-11 22:52:36 C/C++开发

C ++标准库和Boehm垃圾收集器

我想开发一个多线程C ++应用程序(最终大多数C ++代码将由应用程序本身生成,这可能被视为一种高级别领域特定的语言)在Linux / AMD64 / Debian与GCC 4.6(可能是最新的C ++ 11标准)。 我真的想使用 Boehm的保守的垃圾回收器对我所有的堆分配,因为我想分配 new(GC),从不关心 delete 。我假设Boehm的GC工作得很好。 使用C ++(而不 ..
发布时间:2016-10-11 21:51:58 服务器开发

理解术语的含义和概念 - RAII(资源获取是初始化)

您能C ++开发人员给我们一个很好的描述RAII是什么,为什么它很重要,以及它是否可能与其他语言有什么关系? 我做知道一点。我相信它代表“资源获取是初始化”。然而,这个名字不与我的(可能不正确)理解RAII是什么:我得到的印象是RAII是一种初始化堆栈上的对象的方式,这样当这些变量超出范围,析构函数将自动 那么为什么不叫“使用堆栈触发清理”(UTSTTC :)?你如何从那里到“RAII ..
发布时间:2016-10-11 20:14:14 C/C++开发

如何订阅事件不会阻止垃圾回收?

比方说, AppConfiguration.Instance 是一个单例。 现在让我们说我的用户界面动态地添加一个按钮,应该改变它的文本配置是否改变,所以我的应用程序可以这样做: AppConfiguration.Instance.Changed + = Changed_Handler; 在该按钮的代码,但我不想这样做,因为这将防止垃圾的收集之后用户键导航到另一个屏 ..
发布时间:2016-10-08 22:35:24 C#/.NET

多少的GCHandle固定内存/对象将使垃圾收集器速度变慢?

我敢肯定,这个答案将取决于用户机器,但必须有上牵制数据 我需要一些最佳实践持有类似包含每个1.048.576字节字节5阵列。通常我会更喜欢使用的GCHandle (管理)的内存,但有些人说,这将在GC放缓。我知道可能发生,但多少内存/对象需要被固定到开始真正影响到GC? 下面是选项我有: GCHandle.Alloc GCHandleType.Pinned (管理)。它会减慢GC ..
发布时间:2016-10-08 16:16:10 C#/.NET

垃圾收集对象跨越边界的AppDomain

在传递自MarshalByRefObject继承到一个不同的AppDomain的对象,不会GC.Collect的()由创建它收集对象的AppDomain诱导,提供该对象不是由时间GC根植于任何的AppDomain .Collect()叫什么名字? [我说的不是源于我的意思是没有任何开发者编写的代码访问它了。] 看来,对象没有被收集而是获得晋升到下一代! 但是,如果我停止传递对象到 ..
发布时间:2016-10-08 16:07:06 C#/.NET

如何以及何时处置/垃圾回收单一实例

我使用创造出来的一个嵌套类的单一实例。这个实例包含当辛格尔顿布置这是清除一些静态的藏品,但问题是我得到非空处置辛格尔顿参考这是不正确的垃圾回收。 我想知道何时以及如何彻底处理和垃圾收集我的Singleton实例,这样当实例处置后再次查询(并设置为null)一个新的实例被创建。 我使用Singleton实例以下嵌套方式: 公共类SingletonClass:IDisposable的 ..
发布时间:2016-10-08 15:57:25 C#/.NET

将结构传递到接口字段分配?

我有一个结构,这样的事情 结构MYSTRUCTURE :IFoo的 { } 和这样的方法: { } $> b $ b 我的问题是不通过构造成法“盒子”的结构,从而导致垃圾分配 附录:$? b $ b前面的人说,垃圾收集不在此应用程序免费的,它实际上是垃圾收集非常敏感,因此自由分配的代码是很重要的。 解决方案 是的,它的作用。 ..
发布时间:2016-10-08 15:35:49 C#/.NET

第三代的对象和大对象堆之间的区别

什么是大型对象堆和GC第三代对象之间的差异? 解决方案 蕙(大对象堆)是其中,大型对象的直接分配,呆在那里它们被收集到一个单一的堆。对象基于它们的大小例如直接分配到LOH等于或大于85000个字节。 代对象是被分配到SOH(小对象堆),这是一个单一的堆“小”的对象。在SOH对象具有相关联的代它表示他们有多少集合例如存活直至最大代2.由于生成编号从0开始的,因为它已经经历几代即0,1, ..
发布时间:2016-10-05 23:54:22 C#/.NET

在CLR确定性GC?

是否有任何CLR实现具有确定性垃圾收集? 在MS CLR GC非确定性的暂停抑制的.Net被用于实时开发了适宜的环境。 节拍器GC和BEA的JRockit Java中两个确定性的GC实现,我所知道的。 不过,有没有任何.NET等效? 感谢 解决方案 有没有办法使GC的确定性,从调用期望当然 GC.Collect的()正是每秒钟使用定时器; - ) 不过,GC确 ..
发布时间:2016-10-05 23:09:40 C#/.NET

我是不是在关闭一个适当的C#函数此SQL连接?

在试图关闭我的问题上保持开放,并超过了最大池,我试图重写器是用于连接到我们的数据库功能连接。 功能的自产自销编译库中存在。使用反射镜我可以看到代码如下: 公共sqlProvider的([可选,DefaultParameterValue(“”)的字符串StrConnection) { 字符串str; 如果(StrConnection ==“”) { 海峡= Configurati ..

GC根和局部变量

在注视定时器文档我碰到下面的例子跑了此评论: //通常情况下,定时器在一流水平,$ b $声明b //使得它停留在范围,只要它是需要的。 //如果定时器在长时间运行方法中声明, //的KeepAlive必须用于防止JIT编译器 //从允许侵略性垃圾收集发生 //之前该方法结束。您可以使用此 //通过注释掉类级别的声明和 //取消注释以下声明实验;然后取消 //在方法的末尾G ..
发布时间:2016-10-05 21:49:04 C#/.NET