g1

    0热度

    2回答

    我目前正在研究最新的Java 8版本中的G1 GC。 我对“Humongous Allocation”有问题,所以我想知道我的区域大小有多大。 我怎样才能找出区域大小有多大? 我该如何计算自己的区域大小? 由于

    5热度

    2回答

    我的测试代码: int SIZE = 1900; int[][] array = new int[SIZE][]; for (int i = 0; i < SIZE; i++) { array[i] = new int[1024 * 1024/4]; // 1MB Thread.sleep(10); if (i % 100 == 0 && i != 0) {

    0热度

    1回答

    我在线看。但大多数文档刚刚提到,因为g1 gc是增量式的,可预测的收集没有太多细节。

    1热度

    1回答

    为什么G1得到较少的停顿时间,但较低的吞吐量(低吞吐量单元GC将运行在几秒钟内更多的总时间) 每我的理解中,内存被划分成更小的部分,现在充满了要在小于部分运行堆完整。实际上我们可以说现在没有完整的GC,因为它没有在整个堆上运行,而是有多个并发运行的后台线程,并首先清除那些包含最大死亡对象数量的内存块。所以暂停时间很短。 吞吐量很低,因为更大的内存被分成较小的块,因为多个GC线程必须在较小的块而不是

    1热度

    1回答

    JDK版本时: java version "1.7.0_91" OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.14.04.1) OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode) GC/MEM参数: -Xms24g -Xmx24g -Xss256k

    1热度

    1回答

    我试图使用jstat分析Java进程与G1垃圾收集器的内存使用模式: jstat -gc <Process_ID> 60s 输出类似于如下: S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 0.0 229376.0 0.0 229376.0 1998848.0 1253376.0 16646

    1热度

    1回答

    我正在使用最近升级的应用程序,并且看到了我无法解释的新行为。收藏的模式看起来很不错,但是在几秒钟内就可以连续完成超过10个G1的疏散集合(年轻)。他们似乎正在清理伊甸园的记忆,但我不明白为什么它如此迅速地填满。 这是一个复杂的问题还是我做错了什么? (如果我发布了太多细节,我可以编辑并删除它)。 -XX:+UseG1GC -Xms10240m -Xmx10240m -XX:NewRatio=2 -

    1热度

    1回答

    以下是我的GC日志: 2016-08-16T01:45:35.968+0000: 62265.934: [GC pause (G1 Evacuation Pause) (young) Desired survivor size 473956352 bytes, new threshold 15 (max 15) - age 1: 12641224 bytes, 12641224 total

    2热度

    1回答

    当我研究G1 GC时,我发现这篇文章:http://www.oracle.com/technetwork/articles/java/g1gc-1984535.html。在那篇文章中,有如下内容: G1 GC是一个区域化和世代的垃圾收集器,这意味着Java对象堆(堆)被分成许多大小相同的区域。启动时,Java虚拟机(JVM)设置区域大小。根据堆大小,区域大小可以从1 MB到32 MB不等。目标是不

    3热度

    1回答

    我们目前有一个Java本机内存泄漏的问题。服务器相当大(40CPUS,128GB内存)。 Java堆大小是64G,我们运行了一个非常内存密集的应用程序,它将大量数据读取到大约400个线程的字符串中,并在几分钟后将它们从内存中抛出。 所以堆堆积得非常快,但是堆上的东西变得过时,并且可以非常快速地被打开。所以我们必须使用G1来让STW在几分钟内不会中断。 现在,这似乎工作正常 - 堆足够大,运行应用程