【问题标题】:what is the difference between garbage collector and traditional memory collector?垃圾收集器和传统的内存收集器有什么区别?
【发布时间】:2021-02-03 20:40:59
【问题描述】:

垃圾回收和传统内存回收的区别?

哪些应用程序不能很好地与垃圾收集器配合使用?

【问题讨论】:

  • 什么是“传统内存收集器”?看来您想引用 没有 收集器的东西。由于您可能指的是手动内存管理,因此“传统”一词也不适用。垃圾收集比你想象的要老得多,手动内存管理仍在使用中。

标签: memory-leaks garbage-collection garbage


【解决方案1】:

垃圾收集是一种管理内存(甚至是其他资源,如 Linux 上的文件描述符,或文件系统中的 inodes,或者可能是某些 SQL 服务中使用的某种临时表)的一种方式。

在我看来,传统的内存管理(想想 C++ 构造函数/析构函数)是一种有限的垃圾回收形式。

阅读GC handbook了解更多信息。

哪些应用程序不能很好地与垃圾收集器配合使用?

那些消耗许多动态资源(例如窗口小部件、文件描述符、agents,可能是某些自动证明助手中的子证明,OpenCL kernels ....),而 您的 em> GC。

因此,即使在使用内存 GC 的语言或实现(Ocaml、Scheme、Common Lisp)进行编码时,了解 GC 算法也很有用。如果您编写视频游戏,则需要为 sprite 等实现某种专门的 GC 等...(即使您的游戏是在 JVM 上编码的,这需要内存 GC)。

我认为 GC 算法、术语或启发式算法在许多场合都很有用(例如,即使 git 也有一些“GC”)。

【讨论】:

    猜你喜欢
    • 2015-03-14
    • 2012-12-23
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 2012-03-13
    • 2014-03-31
    • 2012-04-08
    • 1970-01-01
    相关资源
    最近更新 更多