java 垃圾回收手动回收
这是有关垃圾收集(GC)的系列文章中的第一篇。 我希望能够涵盖整个系列过程中的理论知识以及热点虚拟机中的所有主要收集器。 这篇文章仅说明什么是垃圾回收以及不同回收器共有的元素。
我为什么要在乎?
您的Java虚拟机可以为您管理内存-这非常方便-但默认情况下可能未进行优化。 通过了解垃圾收集背后的一些理论,您可以更轻松地调整收集器。 一个普遍关注的问题是收集器的效率,也就是说,您的程序花了多少时间执行程序代码而不是收集垃圾。 另一个常见问题是应用程序暂停的时间长。
关于垃圾收集还有很多传闻和民间传说,因此更详细地了解算法确实有助于避免陷入常见的陷阱和陷阱。 此外,对于任何对如何应用和使用计算机科学原理感兴趣的人,JVM内部都是一件很棒的事情。
停止世界是什么意思?
您的程序(或GC-Speak中的mutator)将在运行时分配对象。 在某个时候,需要收集堆,并且热点中的所有收集器都会暂停您的应用程序。 “世界停止”一词用于表示所有增变器的线程都已暂停。
可以实现不需要暂停的垃圾回收器。 Azul在其Zing虚拟机中实现了一个有效的不间断收集器。 我不会介绍它的工作原理,但是如果您想