我实际上正在研究服务于 JVM 的不同 GC 的内部结构,即 G1 、 CMS 、 ParallelOld
只是想了解:
What different action GC take when it perform full garbage collection?
Does it Forcefully deallocate memory?
What are situations in which its beneficial for applications?
最佳答案
术语“完整”与“主要”同义,而不是“次要”垃圾收集周期。这些术语与分代垃圾收集方案相关,其中使用一种简单而快速的算法来分配和释放新的和短期对象,而一种更复杂的算法用于旧对象。这个简单的算法用空间换取时间,因为它需要两个大小相等的内存块,其中一个总是空的。针对旧对象的算法做出了相反的权衡。
大多数情况下,仅执行 Minor GC 运行,以释放足够的内存以继续运行,仅偶尔需要运行 Major(完整)GC 来从老一代恢复空间。由于 Full GC 是一个 CPU 密集型、stop-the-world 事件,因此频繁的 Full GC 会影响应用程序性能。
关于java - 动态内存释放中的完全垃圾收集是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23797915/