C编译语言中的垃圾收集

时间:2016-04-21 19:59:22

标签: c garbage-collection

让我们说我有一个垃圾收集语言,编译为C并通过它汇编。然后,当它被编译成C时垃圾收集如何工作?它是否完全确定?或者它作为另一个定期运行并收集垃圾的程序包含在生成的程序中?这可能是一个非常容易的,如果不是愚蠢的问题,但我想要一些澄清。

3 个答案:

答案 0 :(得分:1)

即使它正在编译为C,这些实现通常链接在原始语言的运行时库中。该库包含更高级语言数据的垃圾收集器。用于表示C语言中原始语言数据的数据结构包括垃圾收集器所需的其他字段。

他们可能使用的另一种技术是conservative garbage collection

答案 1 :(得分:0)

使用编译语言执行类似操作的一种方法是使用ARC reference counting在iOS中完成。从技术上讲,它不是垃圾收集,而是类似的东西。您需要定期在程序内存中搜索已分配的指向堆的地址,以查看是否可以释放内存。

答案 2 :(得分:0)

Bohem gc存在;但是如果你有一个在正确范围内的整数作为指向死对象的指针,整个图形可能会泄漏。 http://hboehm.info/gc/在一个糟糕的选择中。