-1

我一直在运行我的应用程序,初始化和最大值都设置为 256Mb。所以过了一段时间我注意到我准备好了 2 GC。下面是我设法捕获我的 jstat 的片段。我想知道通常是什么导致老一代增长,一旦它满了,我们就可以正确地获得完整的 GC。我没有将初始化和最大内存都设置为 512 Mb。我还必须根据世代值进行其他调整吗?

      2752448.4   0.00  61.25  99.06  51.71  44.17   4613  235.614     2    0.429  236.044
      2752453.4   0.00  61.25  99.73  51.71  44.17   4613  235.614     2    0.429  236.044
      2752458.3  69.74   0.00   0.44  51.72  44.17   4614  235.630     2    0.429  236.059
      2752463.3  69.74   0.00   1.31  51.72  44.17   4614  235.630     2    0.429  236.059
      2752468.4  69.74   0.00   2.67  51.72  44.17   4614  235.630     2    0.429  236.059
^Z
[2]+  Stopped                 ./jstat -gcutil -t 1824 5s
[root@localhost bin]# ./jstat -gcutil -t 1824 5s
Timestamp         S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
      2752472.6  69.74   0.00   3.67  51.72  44.17   4614  235.630     2    0.429  236.059
      2752477.6  69.74   0.00   5.38  51.72  44.17   4614  235.630     2    0.429  236.059
      2752482.6  69.74   0.00   7.51  51.72  44.17   4614  235.630     2    0.429  236.059
      2752487.6  69.74   0.00   9.52  51.72  44.17   4614  235.630     2    0.429  236.059
      2752492.6  69.74   0.00  10.55  51.72  44.17   4614  235.630     2    0.429  236.059
4

1 回答 1

1

我想知道通常是什么导致老一代增长,一旦它满了,我们就可以正确地获得完整的 GC。

任何离开幸存者空间的东西都会在老一代中。当老一代装满时,你可能只会得到一个主要的收藏。完整的系列适合年轻人和老年人。

. 我没有将初始化和最大内存都设置为 5125 Mb

我怀疑你的意思是 512 MB(注意 Mb = 兆位)

我还必须根据世代值进行其他调整吗?

如果没有更多信息,我将不再“调整”GC。实际上,除非您知道这确实有帮助,否则我会删除最低设置。除非我知道这有帮助,否则我什至不设置最大值。

于 2013-10-18T15:11:52.560 回答