gpt4 book ai didi

language-agnostic - 弱引用的其他用途?

转载 作者:行者123 更新时间:2023-12-04 12:44:03 24 4
gpt4 key购买 nike

我知道弱引用很适合 memoizing潜在的大型数据集,以及 Wikipedia's article on weak references仅列出“跟踪应用程序中引用的当前变量”和声明“弱引用的另一种用途是编写缓存”。

还有哪些其他情况(比“缓存结果”更具体)使用弱引用是一个好主意?

最佳答案

弱引用的主要正确用途是识别其重要性源于对它们的强引用的存在。两种最常见的情况是:

  • 一个对象持有对某事物的引用不是因为它“关心”所讨论的对象,而是因为确实关心该对象的其他实体可能希望它对它做某事。如果一段时间后没有人再关心这个对象,那么其他实体就没有理由继续代表“所有关心它的实体”来操纵它。
  • 保存对同一个不可变对象(immutable对象)的许多引用的内存成本可能远低于保存对许多相同对象的引用的内存成本,并且比较对同一对象的引用可能比比较相同对象要快得多。创建一个不可变对象(immutable对象)、放弃它、收集它以及创建一个相同对象的内存成本与创建一个对象并随后返回对它的第二个引用的成本基本相同。返回对无论如何都必须保留的现有对象的引用是一个巨大的胜利;返回对符合收集条件但尚未收集的对象的引用可能会也可能不会成功(通常是轻微的胜利,但在分代 GC 中有时会稍微损害性能);在许多情况下,后者的好处不足以证明使对象的存活时间比其他情况所需的时间更长。
  • 关于language-agnostic - 弱引用的其他用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434156/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com