jjzjj

WeakReference

全部标签

c++ - C++/CX 是否检测和解决对象循环?

来self的understandingC++/CX不使用垃圾回收,而是使用引用计数方法。引用计数的问题在于它无法处理循环。循环通常使用弱引用来解决,例如标准C++中的weak_ptr。但我无法在C++/CX中找到显式指定弱引用的方法。由此我假设这是由C++/CX本身处理的。我想知道C++/CX将如何解决这个问题。例如,看下面的代码:refclassFoo{public:Bar^bar;};refclassBar{public:Foo^foo;};refclassApp{public:virtualvoidOnLaunched(LaunchActivatedEventArgs^args)

java - ThreadLocal 资源泄漏和 WeakReference

我对ThreadLocal的理解有限是它有resourceleakissues.我认为可以通过正确使用WeakReferences来解决这个问题。使用ThreadLocal(尽管我可能误解了这一点。)我只是想要一个模式或示例来正确使用ThreadLocal和WeakReference,如果存在的话。例如,在这个代码片段中,WeakReference将引入什么位置?staticclassDateTimeFormatter{privatestaticfinalThreadLocalDATE_PARSER_THREAD_LOCAL=newThreadLocal(){protectedSimp

java - 设置等效于 WeakHashMap?

是HashSet>Set相当于WeakHashMap?也就是说,当条目不再被引用时,它们会自动删除吗?如果不是,等价的是什么? 最佳答案 不,如果集合中的WeakReference之一引用的对象被垃圾回收,WeakReference仍将包含在集合中并且不会被回收自动删除,但它们的referent将为null。WeakHashMap使用附加代码在垃圾收集时从映射中删除弱引用键。WeakHashMap的等价集合是:Setset=Collections.newSetFromMap(newWeakHashMap());作为一个HashSet

c# - 为什么 .NET 不像 Java 那样既有 SoftReference 又有 WeakReference?

我真的很喜欢弱引用。但我希望有一种方法可以告诉CLR您认为引用有多弱(例如,在1到5的范围内)。那太棒了。Java有SoftReference、WeakReference,我相信还有第三种类型,称为“幻象引用”。那里有3个级别,GC在决定该对象是否被砍掉时有不同的行为算法。我正在考虑对.NET的WeakReference进行子类化(幸运的是,有点奇怪,它没有被密封)来制作一个基于到期计时器或其他东西的伪软引用。 最佳答案 我认为NET没有软引用的根本原因是因为它可以依赖具有虚拟内存的操作系统。Java进程必须指定其最大操作系统内存(

c# - 为什么 .NET 不像 Java 那样既有 SoftReference 又有 WeakReference?

我真的很喜欢弱引用。但我希望有一种方法可以告诉CLR您认为引用有多弱(例如,在1到5的范围内)。那太棒了。Java有SoftReference、WeakReference,我相信还有第三种类型,称为“幻象引用”。那里有3个级别,GC在决定该对象是否被砍掉时有不同的行为算法。我正在考虑对.NET的WeakReference进行子类化(幸运的是,有点奇怪,它没有被密封)来制作一个基于到期计时器或其他东西的伪软引用。 最佳答案 我认为NET没有软引用的根本原因是因为它可以依赖具有虚拟内存的操作系统。Java进程必须指定其最大操作系统内存(

java - 在 Java 中使用弱引用的成本

有没有人研究过创建和垃圾收集Java所涉及的运行时成本WeakReference对象?多线程应用程序是否存在任何性能问题(例如争用)?编辑:显然,实际答案将取决于JVM,但也欢迎进行一般性观察。编辑2:如果有人对性能进行了一些基准测试,或者可以指出一些基准测试结果,那将是理想的。(抱歉,赏金已过期……) 最佳答案 弱引用对CMS垃圾收集器有负面影响。据我所知,从我们服务器的行为来看,它会影响并行备注阶段时间。在此阶段,所有应用程序线程都将停止,因此这是非常不可取的事情。所以你需要小心WeakReferences。

java - 在 Java 中使用弱引用的成本

有没有人研究过创建和垃圾收集Java所涉及的运行时成本WeakReference对象?多线程应用程序是否存在任何性能问题(例如争用)?编辑:显然,实际答案将取决于JVM,但也欢迎进行一般性观察。编辑2:如果有人对性能进行了一些基准测试,或者可以指出一些基准测试结果,那将是理想的。(抱歉,赏金已过期……) 最佳答案 弱引用对CMS垃圾收集器有负面影响。据我所知,从我们服务器的行为来看,它会影响并行备注阶段时间。在此阶段,所有应用程序线程都将停止,因此这是非常不可取的事情。所以你需要小心WeakReferences。

android - 我是否应该担心内存泄漏以及在 Android 中将 WeakReference 与 Volley 结合使用

看完thisarticle,我开始考虑Volley的内存泄漏问题。通常,使用Volley实现的监听器具有对外部类(Activity)的隐式或显式引用。例如:JsonObjectRequestjsonObjReq=newJsonObjectRequest(Request.Method.GET,url,null,newResponse.Listener(){@OverridepublicvoidonResponse(JSONObjectresponse){updateLayout();}}在这种情况下,有一个隐式引用...或者我可能想创建一个自定义JsonObjectRequest来内部化

android - 此字段泄漏上下文对象

我的代码:classHttpRequestTask(privatevaldebtWsUrl:URI,debtorText:TextView):AsyncTask?>(){valdebtorText:TextView=debtorText}为什么与TextView的行显示警告:Thisfieldleaksacontextobject?如何防止这种情况发生? 最佳答案 使用WeakReference.valtextRef:WeakReference=WeakReference(debtorText)

android - 此字段泄漏上下文对象

我的代码:classHttpRequestTask(privatevaldebtWsUrl:URI,debtorText:TextView):AsyncTask?>(){valdebtorText:TextView=debtorText}为什么与TextView的行显示警告:Thisfieldleaksacontextobject?如何防止这种情况发生? 最佳答案 使用WeakReference.valtextRef:WeakReference=WeakReference(debtorText)