我实际上正在经历不同GC的内部服务JVM,即G1,CMS,ParallelOld
只是想了解:
GC执行完整垃圾回收时采取了哪些不同的操作?
是否强行释放内存?
哪些情况对应用有益?
答案 0 :(得分:3)
术语“完整”与“主要”同义,而不是“次要”垃圾收集循环。这些术语涉及分代垃圾收集方案,其中使用简单且快速的算法来分配和释放新的和短期对象,并且将更复杂的算法用于旧对象。简单的算法将空间换成时间,因为它需要两个大小相等的内存块,其中一个总是空的。旧对象的算法进行相反的权衡。
大多数情况下,仅执行次要GC运行,释放足够的内存以进行,并且仅偶尔需要运行主要(完整)GC以从旧一代恢复空间。由于完整的GC是一个CPU密集型,世界各地的事件,频繁的完整GC是应用程序性能的问题。