garbage-collection相关内容
在 C ++ 11的语言功能列表中有: 对垃圾收集和基于可达性的泄漏的最小支持 检测 (但似乎没有在GCC和Clang中实现。) 为什么标准委员会引入了这种垃圾收集C ++ langauge功能? C ++真的需要一个GC吗?是不是RAII这样一个优秀的模式(可以统一用于内存和非内存资源,如套接字,文件,纹理...)? 一个GC破坏了使用RAII的C ++代码模式的
..
使用 C ++ , lua 5.1 , luabind 0.7-0.81 创建一个带父类的lua类,并将其存储在luabind :: object中。 Lua class'TestClassParent ' function TestClassParent:__ init() print('parent init\\\ ') end function TestClas
..
我一直在浏览并使用C ++ 11的不同功能,特别是在Visual Studio 2010中。 其中一个提到的是n2585:最少支持垃圾 收集和基于可达性的泄漏检测。 该提案允许在C ++ 11的框架中实现GC。但是提案本身并不意味着实现需要支持GC。一些库libc ++只是实现库函数作为无操作。 我很确定,在这一点上,你的情况下的记忆只是泄漏了。但请注意,GC发生时,析构函数并
..
我看到一些关于实现GC在C中的一些帖子,有些人说这是不可能做到的,因为C是弱类型。我想知道如何在C ++中实现GC。 我想知道如何做到这一点。非常感谢! 这是我朋友告诉我的彭博面试问题。他当时做得很糟糕。我们想知道你的想法。 解决方案 C和C ++中的垃圾收集都是难题,原因如下: 指针可以类型转换为整数,反之亦然。这意味着我可以有一个内存块,只有通过获取一个整数,类型转换
..
我目前正在阅读一篇未发表的硕士论文报告,我将提供反馈意见。 在报告中他们提到了本地C ++和托管C ++下的GC。我认为C ++没有任何标准的GC,我错了还是正确的? (他们没有提到Boehm-Demers-Weiser。) 在某些情况下,它们有一些问题。 解决方案 托管C ++(及其后续C ++ / CLI)当然对托管资源使用.NET垃圾收集(虽然原生资源不是垃圾收集的,必须
..
我正在使用C ++ / CLI,使用MSDN文档和 ECMA标准 我编写了一个例子: #include ref struct Foo { Foo(){std :: wcout!Foo(); } !Foo(){std :: w
..
有什么免费的和商业的垃圾收集库可用于C ++,每个的优点和缺点是什么? 我对来自实际的 没有必要详细说明与自动垃圾收集相关的通常权衡,但请提及所使用的算法(参考计数,标记和扫描,增量等),并简要总结后果。 解决方案 href =“http://hboehm.info/gc/”> Boehm收藏家在过去取得良好的成功。它是开源的,可以在商业软件中使用。 这是一个保守的收藏家
..
我不断听到人们抱怨C ++没有垃圾收集。我也听说C ++标准委员会正在把它添加到语言。我恐怕我只是没有看到它的点。使用RAII与智能指针,消除了它的需要,对吗? 我唯一的经验与垃圾收集是在几个便宜的八十年代家用电脑,这意味着系统会冻结几秒钟每次都这样频繁。我相信自那以后它已经改善,但正如你可以猜到的,这并没有让我高度的意见。 垃圾回收的优点一个经验丰富的C ++开发人员? 解决方
..
我想开发一个多线程C ++应用程序(最终大多数C ++代码将由应用程序本身生成,这可能被视为一种高级别领域特定的语言)在Linux / AMD64 / Debian与GCC 4.6(可能是最新的C ++ 11标准)。 我真的想使用 Boehm的保守的垃圾回收器对我所有的堆分配,因为我想分配 new(GC),从不关心 delete 。我假设Boehm的GC工作得很好。 使用C ++(而不
..
您能C ++开发人员给我们一个很好的描述RAII是什么,为什么它很重要,以及它是否可能与其他语言有什么关系? 我做知道一点。我相信它代表“资源获取是初始化”。然而,这个名字不与我的(可能不正确)理解RAII是什么:我得到的印象是RAII是一种初始化堆栈上的对象的方式,这样当这些变量超出范围,析构函数将自动 那么为什么不叫“使用堆栈触发清理”(UTSTTC :)?你如何从那里到“RAII
..
我有一个类: 公共类SomeClass的{ 公众诠释我; 公共SomeClass的(INT输入){ I =输入; Console.WriteLine(“I = {0}”,I); } 〜SomeClass的(){ Console.WriteLine(“删除”); } 公共无效美孚(){ Thread.sleep代码(1000); Console.WriteL
..
比方说, AppConfiguration.Instance 是一个单例。 现在让我们说我的用户界面动态地添加一个按钮,应该改变它的文本配置是否改变,所以我的应用程序可以这样做: AppConfiguration.Instance.Changed + = Changed_Handler; 在该按钮的代码,但我不想这样做,因为这将防止垃圾的收集之后用户键导航到另一个屏
..
我敢肯定,这个答案将取决于用户机器,但必须有上牵制数据 我需要一些最佳实践持有类似包含每个1.048.576字节字节5阵列。通常我会更喜欢使用的GCHandle (管理)的内存,但有些人说,这将在GC放缓。我知道可能发生,但多少内存/对象需要被固定到开始真正影响到GC? 下面是选项我有: GCHandle.Alloc GCHandleType.Pinned (管理)。它会减慢GC
..
在传递自MarshalByRefObject继承到一个不同的AppDomain的对象,不会GC.Collect的()由创建它收集对象的AppDomain诱导,提供该对象不是由时间GC根植于任何的AppDomain .Collect()叫什么名字? [我说的不是源于我的意思是没有任何开发者编写的代码访问它了。] 看来,对象没有被收集而是获得晋升到下一代! 但是,如果我停止传递对象到
..
我使用创造出来的一个嵌套类的单一实例。这个实例包含当辛格尔顿布置这是清除一些静态的藏品,但问题是我得到非空处置辛格尔顿参考这是不正确的垃圾回收。 我想知道何时以及如何彻底处理和垃圾收集我的Singleton实例,这样当实例处置后再次查询(并设置为null)一个新的实例被创建。 我使用Singleton实例以下嵌套方式: 公共类SingletonClass:IDisposable的
..
我有一个结构,这样的事情 结构MYSTRUCTURE :IFoo的 { } 和这样的方法: { } $> b $ b 我的问题是不通过构造成法“盒子”的结构,从而导致垃圾分配 附录:$? b $ b前面的人说,垃圾收集不在此应用程序免费的,它实际上是垃圾收集非常敏感,因此自由分配的代码是很重要的。 解决方案 是的,它的作用。
..
什么是大型对象堆和GC第三代对象之间的差异? 解决方案 蕙(大对象堆)是其中,大型对象的直接分配,呆在那里它们被收集到一个单一的堆。对象基于它们的大小例如直接分配到LOH等于或大于85000个字节。 代对象是被分配到SOH(小对象堆),这是一个单一的堆“小”的对象。在SOH对象具有相关联的代它表示他们有多少集合例如存活直至最大代2.由于生成编号从0开始的,因为它已经经历几代即0,1,
..
是否有任何CLR实现具有确定性垃圾收集? 在MS CLR GC非确定性的暂停抑制的.Net被用于实时开发了适宜的环境。 节拍器GC和BEA的JRockit Java中两个确定性的GC实现,我所知道的。 不过,有没有任何.NET等效? 感谢 解决方案 有没有办法使GC的确定性,从调用期望当然 GC.Collect的()正是每秒钟使用定时器; - ) 不过,GC确
..
在试图关闭我的问题上保持开放,并超过了最大池,我试图重写器是用于连接到我们的数据库功能连接。 功能的自产自销编译库中存在。使用反射镜我可以看到代码如下: 公共sqlProvider的([可选,DefaultParameterValue(“”)的字符串StrConnection) { 字符串str; 如果(StrConnection ==“”) { 海峡= Configurati
..
在注视定时器文档我碰到下面的例子跑了此评论: //通常情况下,定时器在一流水平,$ b $声明b //使得它停留在范围,只要它是需要的。 //如果定时器在长时间运行方法中声明, //的KeepAlive必须用于防止JIT编译器 //从允许侵略性垃圾收集发生 //之前该方法结束。您可以使用此 //通过注释掉类级别的声明和 //取消注释以下声明实验;然后取消 //在方法的末尾G
..