![]() |
1
8
不清楚你是否在问:
是的。 一切 待计数:数组中的每个小整数、每个字符串、每个布尔值、每个元素。。。如果没有其他原因,ref计数的实现增加了一些开销,例如,每个对象有一点额外的内存,对于大对象来说可能无关紧要,但是如果应用于每个小对象,则相应地更重要。 Garbage Collector For Delphi Objects and Components 上面写着,
不完全是,;单纯的引用计数不如垃圾收集那么健壮:
更新
|
![]() |
2
5
因为接口使用了一个非常简单的引用计数系统,而循环引用(在Delphi代码中非常常见)打破了简单的引用计数,所以它不会进行垃圾收集。 |
![]() |
3
3
不,因为两件事:
|
![]() |
4
2
垃圾收集不同于简单的引用计数。当引用计数达到0时,可以自动删除,但这也不是垃圾收集。垃圾收集意味着放弃控制何时从内存中删除内容的能力,并允许底层语言的实现优化行为。您不再关注引用计数,而是信任垃圾收集的特定实现的动态行为。 当然,垃圾收集使用一个引用计数系统来知道什么时候不再引用某些内容,但这只是其中的一小部分。 |
![]() |
5
1
引用计数是垃圾收集的一种形式,但不是一种很好的形式。它被一些语言(我想是python)使用,尽管经常与循环检测一起使用。
这意味着您的接口需要已经支持您所需要的方法和属性,这很快就会变得单调乏味,因为您需要为每个类创建接口。 但在D2009或更高版本中可以相当容易地完成。参见巴里·凯利的《实施 smart pointers . 不过,通常的参考计数空穴也适用。 |
![]() |
Some1Else · 函数在Delphi中重新创建TForm 3 年前 |
![]() |
Agmcz · Delphi安卓库。so未安装(AAB) 3 年前 |
![]() |
nader · 如何使用delphi在web上提交表单 7 年前 |
![]() |
kwadratens · Delphi中的卡方分布函数代码 7 年前 |
|
user9672569 · 如何在完整的位图图像中绘制阴影效果? 7 年前 |
![]() |
mmmm · MSBuild(用于Delphi)Make-like功能 7 年前 |