Java 为什么垃圾优先(G1)针对具有大内存的多处理器机器

Java 为什么垃圾优先(G1)针对具有大内存的多处理器机器,java,garbage-collection,heap-memory,g1gc,Java,Garbage Collection,Heap Memory,G1gc,根据: 以及: G1面向具有大内存的多处理器机器 这两篇论文(以及其他网络论文)并未说明我们为什么需要: A.大内存 B多处理器(我认为这是因为并发和并行) 这些要求的技术解释是什么 G1是hotspot VM中唯一能够有效处理超大堆的收集算法。但是,大堆不是必需的,而是G1是为应用程序需要非常大堆的情况而构建的。在低堆情况下,它的性能仍然优于旧算法。处理器的数量也是如此。相反。G1不是大内存的目标。如果应用程序需要较大的堆大小,G1是有效的 为什么应用程序需要大量堆?它取决于业务需求和应用

根据:

以及:

G1面向具有大内存的多处理器机器

这两篇论文(以及其他网络论文)并未说明我们为什么需要: A.大内存 B多处理器(我认为这是因为并发和并行)


这些要求的技术解释是什么

G1是hotspot VM中唯一能够有效处理超大堆的收集算法。但是,大堆不是必需的,而是G1是为应用程序需要非常大堆的情况而构建的。在低堆情况下,它的性能仍然优于旧算法。处理器的数量也是如此。

相反。G1不是大内存的目标。如果应用程序需要较大的堆大小,G1是有效的

为什么应用程序需要大量堆?它取决于业务需求和应用程序的特定需求。您可以加载大量的主数据集,也可以使用内存缓存来减少响应时间。想想大数据应用程序(Spark、Hadoop),它们正在处理teta字节的数据,并使用内存进行处理

多处理器机器具有更强的处理能力,能够有效地并行执行不同的任务。大型堆应用程序显然需要更多的处理能力

通过设置最大暂停时间目标,G1GC尝试实现该目标。与其他算法相比,默认情况下,G1GC将10%的时间用于垃圾收集活动。您必须正确微调参数以实现暂停时间目标


这个相关问题有助于深入了解G1GC:

targeted!=要求