weak-references相关内容
使用 Mono 2.11.3 (SGen) 以及稳定的 2.10.8 版本对我来说使用 WeakReference 的测试代码失败了.在这样的简单代码中 object obj = new object();WeakReference wr = new WeakReference(obj);断言.IsTrue(wr.IsAlive);对象=空;GC.Collect();Assert.IsFal
..
您好,我这里有代码,但我不明白为什么会遇到断点(请参阅评论). 这是我不知道或我不正确理解的 Microsoft 错误吗? 代码在 Debug 中经过测试,但我认为它不应该改变任何东西. 注意:您可以直接在控制台应用程序中测试代码. 仅供参考...在 supercat 回答之后,我用建议的解决方案修复了我的代码,它运行良好:-) !!!坏事是静态字典的使用以及随之而来的性能
..
首先我想澄清我对 WeakReference 的理解,因为以下问题取决于相同的问题. static void test() {人 p = 新人();弱参考person = new WeakReference(p);p =空;System.gc();System.out.println(person.get());System.out.println(person);}静态类人{字符串名
..
我正在尝试为 C# 编写一个真正的 WeakKeyedDictionary 的详细信息...但我遇到了困难. 我意识到这是一项不平凡的任务,但似乎无法声明 WeakKeyedKeyValuePair (其中 GC 仅在键可访问时遵循值引用)使它看起来不可能. 我看到了两个主要问题: 到目前为止,我看到的每个实现都不会在收集键后修剪值.想想看 - 使用这样一个 Diction
..
来自 J.布洛赫 ... 内存泄漏的来源是听众... 最好的方法来确保回调被垃圾收集及时是只存储弱对它们的引用,例如,通过仅将它们作为键存储在WeakHashMap. 那么,为什么 Java Collections 框架中没有 WeakSet? 解决方案 Collections.newSetFromMap 设置弱哈希集 =Collections.newSetFromMap(n
..
可能重复: 弱引用 - 它们有多大用处? 既然垃圾收集器可以随时声明弱引用,那么使用它们有什么实际理由吗? 解决方案 如果你想保留对某个东西的引用,只要它在其他地方使用,例如一个监听器,你可以使用弱引用. WeakHashMap 可用作派生数据的键的短暂缓存.它还可以用于保存有关在其他地方使用的对象的信息,并且您不知道这些对象何时被丢弃. 顺便说一句,软引用类似于弱引用
..
假设你有类似的东西: x = "某事"b = xl = [b] 如何删除只有一个引用的对象,比如 x? del x 不会成功;例如,该对象仍然可以从 b 访问. 解决方案 不不不.Python 有一个垃圾收集器,它有非常严重的领域问题——它不会干扰你创建对象,也不会干扰它删除对象. 简而言之,这是不可能的,而且是有充分理由的. 例如,如果您的需求来自例如缓存算法保留引
..
我有一个缓存,它使用对缓存对象的 WeakReferences 来使它们在内存压力的情况下自动从缓存中删除.我的问题是缓存对象在存储在缓存中后很快就被收集起来.缓存在 64 位应用程序中运行,尽管仍有超过 4gig 的内存可用,但仍会收集所有缓存的对象(此时它们通常存储在 G2 堆中).正如进程资源管理器所示,没有手动引发垃圾收集. 我可以应用哪些方法来延长对象的寿命? 解决方案 使
..
我有一个我希望通过的测试,但垃圾收集器的行为并不像我想象的那样: [测试]公共无效弱参考测试2(){var obj = 新对象();var wRef = new WeakReference(obj);wRef.IsAlive.Should().BeTrue();//通过GC.Collect();wRef.IsAlive.Should().BeTrue();//通过对象=空;GC.Collect(
..
AFAIK 在 Android 上,建议将 Bitmap 对象引用为 WeakReferences 以避免内存泄漏.当不再保留位图对象的硬引用时,垃圾收集器将自动收集它. 现在,如果我理解正确,必须始终调用 Bitmap.recycle() 方法来释放位图.我认为这是因为 Bitmap 对象具有特殊的内存管理. 对吗? 如果这是真的,当使用 WeakReferences 时,
..
这是我的错误代码我认为这个错误有什么难的地方,我在论坛上找过,但没有找到. 而且...我的手机出现错误(使用 kivy启动器 python 3 以及当我使用 buildozer 构建时)但不在我的计算机上(ubuntu 18.0.4 和 windows 10)据我了解,该错误来自删除引用的垃圾收集器,并且代码尝试在垃圾收集器之后访问引用.但我不确定我是否理解垃圾收集器的事情 我尝试了什
..
我已将我的项目切换到 ARC,但我不明白是否必须对 IBOutlets 使用 strong 或 weak.Xcode 这样做:在界面生成器中,例如,如果创建一个 UILabel 并且我将它与助手编辑器连接到我的 ViewController,它会创建这个: @property (nonatomic, strong) UILabel *aLabel; 它使用 strong,相反,我在 RayWe
..
我有一个 Objective-C 程序,我正在使用 ARC(自动引用计数),它在第 23 行引发了分段错误(参见下面的程序). 问题1)为什么会出现分段错误? 下面是程序: #import@界面汽车:NSObject@property (weak) NSNumber* 门;@结尾@实施汽车@合成门;@结尾主函数(){系统(“清除");
..
我有一个关于 android 中这种简单频繁发生的情况的问题. 我们有一个 main Activity,我们调用了一个 AsyncTask 以及 mainActivity 的引用,以便 AsyncTask 可以更新 MainActivity 上的视图. 我将把事件分解成几个步骤 MainActivity 创建一个 AyncTask ,将其引用传递给它. AysncTask ,开
..
我的应用程序中有一些内存泄漏.它们都起源于一个特定的视图集群,我花了很多时间调整并试图尽可能减少上下文传递.这让我相信集群中使用的位图是问题所在.所以我想对视图使用的位图的所有引用使用 WeakReferences.我从未使用过 WeakReference 并且不确定这是否是一个好的应用程序.任何机构都可以提供有用的指示或提示吗? 解决方案 所以我想用WeakReferences
..
假设你有类似的东西: x = "东西"b = xl = [b] 如何删除只有一个引用的对象,比如 x? del x 不会解决问题;例如,该对象仍然可以从 b 到达. 解决方案 不不不.Python 有一个垃圾收集器,它具有非常严重的领域问题 - 它不会打扰您创建对象,也不会打扰您删除对象. 简单地说,这是不可能的,而且是有充分理由的. 例如,如果您的需求来自于保持引用
..
有人可以解释三个参考类之间的区别吗(或发布一个很好解释的链接)?SoftReference > WeakReference > PhantomReference,但是我什么时候使用每一个?为什么有 WeakHashMap 而没有 SoftHashMap 或 PhantomHashMap? 如果我使用以下代码... WeakReferenceref = new WeakReference("
..
我已阅读 这篇文章介绍了Java中不同类型的引用(强、软、弱、幻影),但我不是很懂. 这些引用类型之间有什么区别,每种类型将在什么时候使用? 解决方案 Java 提供了两种不同类型/类的引用对象:strong 和 weak强>.弱引用对象可以进一步分为soft和phantom. 强大 弱 软 幻影 让我们一点一点. 强参考对象 StringBuilder b
..
我正在研究是否可以在 python 中实现一个简单的回调功能.我以为我可以为此使用weakref.WeakSet,但显然我遗漏或误解了某些东西.正如您在代码中看到的,我首先尝试使用“ClassA"对象中的回调方法列表,但意识到这将使已添加到回调列表中的对象保持活动状态.相反,我尝试使用 weakref.WeakSet 但这也不起作用(至少不是这样).最后四行代码中的注释解释了我想要发生的事情.
..
我想知道是否有一种简单的方法(或至少是一种方法)来找出程序中存在保留循环的位置.此外,如果我知道这些保留周期存在于何处,取决于它们的类型(例如变量或闭包),我如何使它们变弱.我需要使用 self(我的 GameScene)停止所有保留周期,以便在我不再需要它并且我想重新启动它时解除分配. 我们将不胜感激任何提示、建议、答案和反馈(最好提供具体的代码和示例).谢谢. 编辑:@Sweepe
..