为什么垃圾收集和自动内存分配在某些情况下被认为是缺点?

时间:2014-04-23 07:55:22

标签: memory-management garbage-collection theory

我们可以在Ivo Balbaert的书“The Way To Go”中找到一个例子:

  

然而,由于垃圾收集和自动内存分配,Go不适合实时软件。

什么使垃圾收集和自动内存分配语言不适合该任务?

2 个答案:

答案 0 :(得分:1)

基本上,您无法控制垃圾收集器何时运行或需要多长时间。当然,将设计一个运行时,以便GC尽可能少地支持其他工作。但是尽可能少'对于实时来说还不够好 - 需要保证事情会在一定时间内发生。

(内存分配是另一种可能需要太长时间的操作,并且可能还有其他必须定期运行的内务管理任务。但是如果内存分配需要很长时间时间,可能是因为需要先运行GC。)

答案 1 :(得分:1)

  • 垃圾收集可能是一个问题,因为垃圾收集器需要一些时间来运行,而这种情况发生在不可预测的时刻。实时软件中的一件坏事。

  • 自动内存分配本身并不严格,但是:

    • 在Go和类似语言中,它与垃圾收集密切相关。
    • 许多实时系统都希望像时间一样严格控制内存分配。有些程序根本不使用动态分配。如果做得好,这意味着您可以编写可证明永远不会耗尽内存的程序。