weak-references相关内容

Mono 上奇怪的弱引用行为

使用 Mono 2.11.3 (SGen) 以及稳定的 2.10.8 版本对我来说使用 Wea​​kReference 的测试代码失败了.在这样的简单代码中 object obj = new object();WeakReference wr = new WeakReference(obj);断言.IsTrue(wr.IsAlive);对象=空;GC.Collect();Assert.IsFal ..
发布时间:2022-01-23 14:58:32 C#/.NET

C# WeakReference 对象在终结器中为 NULL,但仍被强引用

您好,我这里有代码,但我不明白为什么会遇到断点(请参阅评论). 这是我不知道或我不正确理解的 Microsoft 错误吗? 代码在 Debug 中经过测试,但我认为它不应该改变任何东西. 注意:您可以直接在控制台应用程序中测试代码. 仅供参考...在 supercat 回答之后,我用建议的解决方案修复了我的代码,它运行良好:-) !!!坏事是静态字典的使用以及随之而来的性能 ..
发布时间:2022-01-16 10:26:13 C#/.NET

是否可以在 C# 中创建一个真正的弱键字典?

我正在尝试为 C# 编写一个真正的 WeakKeyedDictionary 的详细信息...但我遇到了困难. 我意识到这是一项不平凡的任务,但似乎无法声明 WeakKeyedKeyValuePair (其中 GC 仅在键可访问时遵循值引用)使它看起来不可能. 我看到了两个主要问题: 到目前为止,我看到的每个实现都不会在收集键后修剪值.想想看 - 使用这样一个 Diction ..
发布时间:2022-01-16 10:02:36 C#/.NET

弱引用有实际用途吗?

可能重复: 弱引用 - 它们有多大用处? 既然垃圾收集器可以随时声明弱引用,那么使用它们有什么实际理由吗? 解决方案 如果你想保留对某个东西的引用,只要它在其他地方使用,例如一个监听器,你可以使用弱引用. WeakHashMap 可用作派生数据的键的短暂缓存.它还可以用于保存有关在其他地方使用的对象的信息,并且您不知道这些对象何时被丢弃. 顺便说一句,软引用类似于弱引用 ..
发布时间:2022-01-16 09:51:16 Java开发

如何在 Python 中删除对象的每个引用?

假设你有类似的东西: x = "某事"b = xl = [b] 如何删除只有一个引用的对象,比如 x? del x 不会成功;例如,该对象仍然可以从 b 访问. 解决方案 不不不.Python 有一个垃圾收集器,它有非常严重的领域问题——它不会干扰你创建对象,也不会干扰它删除对象. 简而言之,这是不可能的,而且是有充分理由的. 例如,如果您的需求来自例如缓存算法保留引 ..
发布时间:2022-01-16 09:49:47 Python

WeakReference 是否提供良好的缓存?

我有一个缓存,它使用对缓存对象的 WeakReferences 来使它们在内存压力的情况下自动从缓存中删除.我的问题是缓存对象在存储在缓存中后很快就被收集起来.缓存在 64 位应用程序中运行,尽管仍有超过 4gig 的内存可用,但仍会收集所有缓存的对象(此时它们通常存储在 G2 堆中).正如进程资源管理器所示,没有手动引发垃圾收集. 我可以应用哪些方法来延长对象的寿命? 解决方案 使 ..
发布时间:2022-01-16 09:44:45 C#/.NET

Bitmap、Bitmap.recycle()、WeakReferences 和垃圾回收

AFAIK 在 Android 上,建议将 Bitmap 对象引用为 WeakReferences 以避免内存泄漏.当不再保留位图对象的硬引用时,垃圾收集器将自动收集它. 现在,如果我理解正确,必须始终调用 Bitmap.recycle() 方法来释放位图.我认为这是因为 Bitmap 对象具有特殊的内存管理. 对吗? 如果这是真的,当使用 Wea​​kReferences 时, ..

Kivy:错误弱引用对象(在时钟函数中)不再存在

这是我的错误代码我认为这个错误有什么难的地方,我在论坛上找过,但没有找到. 而且...我的手机出现错误(使用 kivy启动器 python 3 以及当我使用 buildozer 构建时)但不在我的计算机上(ubuntu 18.0.4 和 windows 10)据我了解,该错误来自删除引用的垃圾收集器,并且代码尝试在垃圾收集器之后访问引用.但我不确定我是否理解垃圾收集器的事情 我尝试了什 ..
发布时间:2022-01-15 09:13:02 移动开发

Objective-C - ARC - NSNumber - 分段错误

我有一个 Objective-C 程序,我正在使用 ARC(自动引用计数),它在第 23 行引发了分段错误(参见下面的程序). 问题1)为什么会出现分段错误? 下面是程序: #import@界面汽车:NSObject@property (weak) NSNumber* 门;@结尾@实施汽车@合成门;@结尾主函数(){系统(“清除"); ..

使用 Wea​​kReferences 有什么好处?

我的应用程序中有一些内存泄漏.它们都起源于一个特定的视图集群,我花了很多时间调整并试图尽可能减少上下文传递.这让我相信集群中使用的位图是问题所在.所以我想对视图使用的位图的所有引用使用 Wea​​kReferences.我从未使用过 WeakReference 并且不确定这是否是一个好的应用程序.任何机构都可以提供有用的指示或提示吗? 解决方案 所以我想用WeakReferences ..
发布时间:2022-01-06 12:07:14 Java开发

如何删除Python中对象的每个引用?

假设你有类似的东西: x = "东西"b = xl = [b] 如何删除只有一个引用的对象,比如 x? del x 不会解决问题;例如,该对象仍然可以从 b 到达. 解决方案 不不不.Python 有一个垃圾收集器,它具有非常严重的领域问题 - 它不会打扰您创建对象,也不会打扰您删除对象. 简单地说,这是不可能的,而且是有充分理由的. 例如,如果您的需求来自于保持引用 ..
发布时间:2022-01-05 11:53:25 Python

了解 Java 的引用类:SoftReference、WeakReference 和 PhantomReference

有人可以解释三个参考类之间的区别吗(或发布一个很好解释的链接)?SoftReference > WeakReference > PhantomReference,但是我什么时候使用每一个?为什么有 WeakHashMap 而没有 SoftHashMap 或 PhantomHashMap? 如果我使用以下代码... WeakReferenceref = new WeakReference(" ..

Java:强/软/弱/幻象参考之间的区别

我已阅读 这篇文章介绍了Java中不同类型的引用(强、软、弱、幻影),但我不是很懂. 这些引用类型之间有什么区别,每种类型将在什么时候使用? 解决方案 Java 提供了两种不同类型/类的引用对象:strong 和 weak强>.弱引用对象可以进一步分为soft和phantom. 强大 弱 软 幻影 让我们一点一点. 强参考对象 StringBuilder b ..

使用 python WeakSet 启用回调功能

我正在研究是否可以在 python 中实现一个简单的回调功能.我以为我可以为此使用weakref.WeakSet,但显然我遗漏或误解了某些东西.正如您在代码中看到的,我首先尝试使用“ClassA"对象中的回调方法列表,但意识到这将使已添加到回调列表中的对象保持活动状态.相反,我尝试使用 weakref.WeakSet 但这也不起作用(至少不是这样).最后四行代码中的注释解释了我想要发生的事情. ..
发布时间:2022-01-03 08:16:32 Python

了解保留循环的位置并删除它们

我想知道是否有一种简单的方法(或至少是一种方法)来找出程序中存在保留循环的位置.此外,如果我知道这些保留周期存在于何处,取决于它们的类型(例如变量或闭包),我如何使它们变弱.我需要使用 self(我的 GameScene)停止所有保留周期,以便在我不再需要它并且我想重新启动它时解除分配. 我们将不胜感激任何提示、建议、答案和反馈(最好提供具体的代码和示例).谢谢. 编辑:@Sweepe ..
发布时间:2022-01-01 11:17:14 移动开发