gpt4 book ai didi

garbage-collection - 保守垃圾收集器

转载 作者:行者123 更新时间:2023-12-03 13:25:19 26 4
gpt4 key购买 nike

我已经看到垃圾收集器被标记为很多东西,例如代代相传等等。但是我已经看到Boehm GC被标记为“保守”了。这到底是什么意思呢?

最佳答案

垃圾收集器必须扫描所有对象和调用(执行堆栈)以识别执行程序中的所有“ Activity ”地址,然后“收集”没有“ Activity ”地址的对象。在某些环境中,GC算法可能是精确的,并且确切地知道什么是对象地址,什么不是。在其他环境中,它必须扫描存储的某些部分(最主要是执行堆栈),其中有存储字可能是对象地址,并保守地假设它看起来像有效地址,并且有一个对象具有该地址地址,则不应收集对象。

保守的收集有很多优点,最显着的是,代码生成器(如果不解释的话)可以更自由地在需要变量的位置和时间分配变量,并且不必严格跟踪对象指针。 (除了要使代码生成器变得更加复杂之外,需要跟踪对象指针的位置可能导致优化效果欠佳的代码。而且,保守的收集器有一定的合理机会与从未打算支持的编译器一起使用。垃圾收集,而精确的收集器则需要对编译器进行彻底的更改。)

保守方法的主要缺点是无法实现完整的“复制”收集器。复制完成后,必须更新指向复制对象的指针,并且如果不清楚给定的位值是对象指针还是数字值,则不能安全地确定在对象被赋值时是否应修改它。复制。还有一个缺点是,由于看起来像它们地址的随机位模式,某些“死”对象可能最终没有被收集,尽管实际上这并不是一个严重的问题。

关于garbage-collection - 保守垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629446/

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