目录:
定义-垃圾回收(GC)是什么意思?
垃圾回收(GC)是一种用于自动内存管理和堆分配的动态方法,该方法可处理和识别死内存块并重新分配存储以供重用。 垃圾回收的主要目的是减少内存泄漏。
GC的实现需要三种主要方法,如下所示:
- 标记并清除-当内存用尽时,GC会找到所有可访问的内存,然后回收可用的内存。
- 引用计数-分配的对象包含引用编号的引用计数。 当内存计数为零时,该对象是垃圾,然后被销毁。 释放的内存返回到内存堆。
- 副本收集-有两个内存分区。 如果第一个分区已满,GC将查找所有可访问的数据结构并将其复制到第二个分区,从而在GC处理之后压缩内存并允许连续的空闲内存。
带有内置GC的某些编程语言和平台(例如Java,Lisp,C#和.Net)可以自我管理内存泄漏,从而实现更高效的编程。
Techopedia解释了垃圾收集(GC)
垃圾回收的自动堆分配的动态方法解决了常见且代价高昂的错误,这些错误在未被发现时通常会导致现实世界中的程序缺陷。
由于难以识别和修复它们,因此分配错误的代价很高。 因此,许多人认为垃圾回收是一种基本的语言功能,它通过较低的手动堆分配管理使程序员的工作更加轻松。 但是,GC并不完美,应该考虑以下缺点:
- 释放内存时,GC会消耗计算资源。
- GC过程是不可预测的,从而导致分散的会话延迟。
- 如果未手动处理未使用的对象引用,则GC会导致逻辑内存泄漏。
- GC并不总是知道何时在现代台式计算机的虚拟内存环境中进行处理。
- GC进程与缓存和虚拟内存系统的交互很差,从而导致性能调整困难。