做网商哪个国外网站好,赣州做网站j,wordpress 修改模板,做网站都需要做什么Serial GC: 算法: 使用的是标记-清除算法。特点: 串行执行#xff0c;适用于单CPU环境或较小的堆内存配置。在新生代和老年代的回收中都是单线程执行#xff0c;因此在进行垃圾回收时会暂停所有应用线程#xff08;Stop-The-World#xff09;。 Parallel GC (也称为吞吐量优… Serial GC: 算法: 使用的是标记-清除算法。特点: 串行执行适用于单CPU环境或较小的堆内存配置。在新生代和老年代的回收中都是单线程执行因此在进行垃圾回收时会暂停所有应用线程Stop-The-World。 Parallel GC (也称为吞吐量优先收集器): 算法: 在新生代中使用复制算法老年代通常使用标记-压缩算法。特点: 适用于多CPU环境可以并行执行以提高垃圾回收速度从而提高整体应用程序的吞吐量。在新生代回收时可以使用多个线程并行工作但仍会在老年代回收时引起较长时间的暂停。 Concurrent Mark Sweep (CMS) GC (已废弃但在某些旧版本JDK中可用): 算法: 主要使用标记-清除算法特点是大部分工作可以在应用线程运行的同时并发进行减少暂停时间。特点: 旨在减少垃圾回收引起的暂停时间适用于对响应时间要求较高的服务。但可能会导致内存碎片化并且在极端情况下可能出现内存耗尽而触发Full GC影响性能。 G1 (Garbage First) GC: 算法: 结合了分区算法和标记-复制的思想新生代和老年代都在一个连续的内存空间内被划分为多个区域。特点: 设计用于大型堆内存目标是实现可预测的暂停时间。G1通过并发标记和分区的方式工作尝试平衡吞吐量和延迟最终目标是替代CMS。 Z Garbage Collector (ZGC): 算法: 使用了染色指针技术结合标记-复制算法实现了几乎无停顿的垃圾回收。特点: 自JDK 11引入目标是即使在非常大的堆内存中也能保持暂停时间在10ms以内适合对延迟敏感的应用。Zero GC暂停时间目标这里的“Zero”体现在它力图使应用程序在进行垃圾回收时的暂停时间非常短几乎不影响应用的响应时间。Zapped快速处理“Z”隐含了快速、即时处理的意思反映ZGC在处理垃圾回收时的高效和迅速 Shenandoah GC: 算法: 同样采用了标记-复制算法并利用了类似ZGC的区域划分和并发回收策略。特点: 提供了低延迟垃圾回收能力能在不停止应用线程的情况下进行大部分垃圾回收工作适用于大规模且对延迟有严格要求的应用。 概念解释
吞吐量
具体来说如果一个应用运行了100秒其中98秒是在执行业务逻辑而2秒用于垃圾回收那么这个应用的吞吐量就是98%。
Parallel GC也称作吞吐量优先收集器即在牺牲一定GC停顿时间的前提下使得应用程序能够更快地完成更多的任务。例如在一个大数据处理或者高负载的服务器应用中我们可能更关心在一段时间内能处理多少请求而不是单个请求的响应时间。
吞吐量百分比可通过参数设置默认情况下如果不进行特殊配置JVM的吞吐量目标是99%这意味着目标是将99%的时间用于应用程序的执行而只留1%的时间用于垃圾回收。
延迟
这里特指垃圾回收引起的停顿时间即Stop-The-WorldSTW事件的持续时间。低延迟意味着在垃圾回收期间应用程序暂停的时间很短这对于需要即时响应的交互式应用如在线交易系统、游戏等来说至关重要因为长暂停会直接影响用户体验。
平衡吞吐量和延迟
在垃圾回收器的设计中吞吐量和延迟往往是相互制约的。例如为了提高吞吐量垃圾回收器可能会采取更激进的策略如更少的垃圾回收频率但这可能导致每次垃圾回收时的停顿时间变长从而增加延迟。反之为了降低延迟可能需要更频繁但更轻量级的垃圾回收这又可能降低了整体的吞吐量。
G1 目标是在确保垃圾回收停顿时间可预测和可控低延迟的同时尽可能维持较高的应用程序执行效率高吞吐量。这意味着G1在设计上既考虑了如何高效地回收内存减少内存管理对应用运行的影响也考虑到了如何让应用在面临垃圾回收时的响应更加及时和可预测。这种平衡对于现代复杂多变的应用场景尤其重要。
简单理解如果吞吐量为98%停顿时间2%(垃圾回收时间)怎么来停顿这2%的时间可一次停顿也可多次停顿需要平衡。 应用
jdk8: 默认使用Parallel GC
jdk9: 从Java 9开始及之后的版本默认使用G1