我很好奇为什么Haskell实现会使用GC。
我想不出GC在纯语言中是必要的。这仅仅是一种减少复制的优化,还是实际上是必要的?
我正在寻找如果不存在GC就会泄漏的示例代码.
发布于 2012-03-31 02:59:23
只要您有足够的内存,垃圾收集器就不是必需的。然而,在现实中,我们没有无限的内存,所以我们需要一些方法来回收不再需要的内存。在像C这样的不纯语言中,您可以显式地声明您已经使用了一些内存来释放它--但这是一种变异操作(您刚刚释放的内存不再安全,因此您不能在纯语言中使用这种方法。因此,它要么是静态地分析可以释放内存的地方(在一般情况下可能是不可能的),要么是像筛子一样泄漏内存(在用完之前工作得很好),或者使用GC。
https://stackoverflow.com/questions/9952602
复制相似问题