【发布时间】:2021-02-03 20:40:59
【问题描述】:
垃圾回收和传统内存回收的区别?
哪些应用程序不能很好地与垃圾收集器配合使用?
【问题讨论】:
-
什么是“传统内存收集器”?看来您想引用 没有 收集器的东西。由于您可能指的是手动内存管理,因此“传统”一词也不适用。垃圾收集比你想象的要老得多,手动内存管理仍在使用中。
标签: memory-leaks garbage-collection garbage
垃圾回收和传统内存回收的区别?
哪些应用程序不能很好地与垃圾收集器配合使用?
【问题讨论】:
标签: memory-leaks garbage-collection garbage
垃圾收集是一种管理内存(甚至是其他资源,如 Linux 上的文件描述符,或文件系统中的 inodes,或者可能是某些 SQL 服务中使用的某种临时表)的一种方式。
在我看来,传统的内存管理(想想 C++ 构造函数/析构函数)是一种有限的垃圾回收形式。
阅读GC handbook了解更多信息。
哪些应用程序不能很好地与垃圾收集器配合使用?
那些消耗许多动态资源(例如窗口小部件、文件描述符、agents,可能是某些自动证明助手中的子证明,OpenCL kernels ....),而 您的 em> GC。
因此,即使在使用内存 GC 的语言或实现(Ocaml、Scheme、Common Lisp)进行编码时,了解 GC 算法也很有用。如果您编写视频游戏,则需要为 sprite 等实现某种专门的 GC 等...(即使您的游戏是在 JVM 上编码的,这需要内存 GC)。
我认为 GC 算法、术语或启发式算法在许多场合都很有用(例如,即使 git 也有一些“GC”)。
【讨论】: