|
1
8
不清楚你是否在问:
是的。 一切 待计数:数组中的每个小整数、每个字符串、每个布尔值、每个元素。。。如果没有其他原因,ref计数的实现增加了一些开销,例如,每个对象有一点额外的内存,对于大对象来说可能无关紧要,但是如果应用于每个小对象,则相应地更重要。 Garbage Collector For Delphi Objects and Components 上面写着,
不完全是,;单纯的引用计数不如垃圾收集那么健壮:
更新
|
|
|
2
5
因为接口使用了一个非常简单的引用计数系统,而循环引用(在Delphi代码中非常常见)打破了简单的引用计数,所以它不会进行垃圾收集。 |
|
|
3
3
不,因为两件事:
|
|
|
4
2
垃圾收集不同于简单的引用计数。当引用计数达到0时,可以自动删除,但这也不是垃圾收集。垃圾收集意味着放弃控制何时从内存中删除内容的能力,并允许底层语言的实现优化行为。您不再关注引用计数,而是信任垃圾收集的特定实现的动态行为。 当然,垃圾收集使用一个引用计数系统来知道什么时候不再引用某些内容,但这只是其中的一小部分。 |
|
|
5
1
引用计数是垃圾收集的一种形式,但不是一种很好的形式。它被一些语言(我想是python)使用,尽管经常与循环检测一起使用。
这意味着您的接口需要已经支持您所需要的方法和属性,这很快就会变得单调乏味,因为您需要为每个类创建接口。 但在D2009或更高版本中可以相当容易地完成。参见巴里·凯利的《实施 smart pointers . 不过,通常的参考计数空穴也适用。 |
|
zeus · 如何在调整数组大小后保持指向动态数组的指针有效? 1 年前 |
|
|
SignalOne · 德尔福(FMX)循环参考 1 年前 |
|
|
Sascha Ott · 如何从线程调用线程的方法? 1 年前 |
|
|
user1580348 · 问题:如何在上次最小化后还原应用程序? 1 年前 |
|
tua · Delphi的TLinkLabel坏了吗? 2 年前 |
|
|
Frank.Wu · delphi:RGB到HSL不正确 2 年前 |