当前位置: 首页 > 知识库问答 >
问题:

为什么在jstat-gcutil的结果中没有FullGC而是显示99%到14%的老一代?

张嘉
2023-03-14

jstat-gcutil,如下所示:

老一代从13.78到99.98,再到14.81,但FGCT总是1,为什么?

除了FullGC,还有其他原因造成这种情况?

GC是CMS和JVM参数:

-xms4096m-xmx4096m-xss256k-xx:permsize=256m-xx:maxpermsize=256m-xx:newssize=512m-xx:maxnewsize=512m-xx:survivorratio=16-xx:+useparnewgc-xx:parallelgcthreads=16-xx:maxtenuringthreshold=32-xx:+useconcmarksweepgc-xx:parallelcmsthreads=8-xx:+cmsparallelpremenabled-xx:+cmsp全收集

共有1个答案

郑锋
2023-03-14

我自己做了一些测试,我的结论是,当使用JVM参数运行时,它似乎是jstat中的一个bug。我在一个简单的测试应用程序上同时运行了jstat-gc和jstat-gcutil,得到了以下输出:

jstat-gc:

S0C    S1C    S0U    S1U      EC       EU        OC         OU
29120,0 29120,0  0,0    0,0   466048,0 18642,2  3670016,0     0,0
29120,0 29120,0  0,0    0,0   466048,0 18642,2  3670016,0     0,0
29120,0 29120,0  0,0    0,0   466048,0 18642,2  3670016,0     0,0
29120,0 29120,0  0,0    0,0   466048,0 18642,2  3670016,0     0,0
29120,0 29120,0  0,0    0,0   466048,0 18642,2  3670016,0     0,0
29120,0 29120,0  0,0    0,0   466048,0 55926,2  3670016,0     0,0
29120,0 29120,0  0,0    0,0   466048,0 369663,6 3670016,0     0,0
29120,0 29120,0  0,0   29120,0 466048,0 466048,0 3670016,0   94773,6
29120,0 29120,0  0,0   29120,0 466048,0 299100,8 3670016,0   118478,6
29120,0 29120,0 29120,0  0,0   466048,0  9163,2  3670016,0   254498,6

JSTAT-GCUTIL

 S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
  0,00   0,00   4,00   0,00   0,93      0    0,000     0    0,000    0,000
  0,00   0,00   4,00   0,00   0,93      0    0,000     0    0,000    0,000
  0,00   0,00   4,00   0,00   0,93      0    0,000     0    0,000    0,000
  0,00   0,00   4,00   0,00   0,93      0    0,000     0    0,000    0,000
  0,00   0,00   4,00   0,00   0,93      0    0,000     0    0,000    0,000
  0,00   0,00  26,00   0,00   0,97      0    0,000     0    0,000    0,000
  0,00   0,00  89,32   0,00   0,97      0    0,000     0    0,000    0,000
  0,00 100,00 100,00 100,00   0,97      1    0,000     0    0,000    0,000
  0,00 100,00  80,02   3,23   0,97      1    0,905     0    0,000    0,905
100,00   0,00  13,76   6,93   0,97      2    1,441     0    0,000    1,441
 类似资料:
  • 这应该是一个相对简单的问题,但它让我发疯。我正在尝试在JavaFX中创建扫雷器(主要用于练习),但我甚至无法显示一个简单的矩形。我以前运行过一次游戏,但我试图使游戏更加抽象,因此更容易编码,但我遇到了不显示任何问题。 我消除了所有无关的代码,使其尽可能简单。我基本上是在尝试创建一个名为Box的具有特定颜色和大小的矩形,将框添加到窗格中,并显示窗格。为了使Box成为可以在窗格上显示的节点,我使Box

  • 我正在尝试使用CSS边框在GUI(fxml)上显示墙。getStyleClass()。add()但它们没有出现。 我正在使用一个开关,将相应的样式类添加到单元格中。 Java代码: CSS代码: GUI事后图片:结果

  • 问题内容: 我是Java的新手,所以我编写了这段代码,以便将这整个五年都称为布尔值,并为所有布尔值生成答案。但是,它仅调用最后一个。我该怎么做呢? 问题答案: 您每年需要使用单独的对象,或者至少在创建该年份的对象后立即调用the年检查方法。 您所拥有的是对函数的一系列调用,该函数将值分配给同一对象的属性。因此,只有最后一条语句才起作用,因为先前的值将被覆盖。 另外请注意,您的代码似乎没有正确组织。

  • 问题内容: 什么是%在计算?我似乎无法弄清楚它的作用。 例如,它算出计算的百分比吗:显然等于0。如何? 问题答案: (取模)运算符从第一个参数除以第二个参数得出余数。首先将数字参数转换为通用类型。右零参数引发ZeroDivisionError异常。参数可以是浮点数,例如3.14%0.7等于0.34(因为3.14等于4 * 0.7 + 0.34。)模运算符始终产生与第二个操作数具有相同符号的结果(或

  • 问题内容: 我是jstat工具的新手。因此,我做了如下示例。 结果表明什么?哪些列需要注意可能的内存问题,例如内存泄漏等。 问题答案: 请参阅文档: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html 基本上,一行是一个时间点。这些列显示了有关JVM内存区域(Survivor,Eden等)的数据,如果不了解JV

  • 我不熟悉jstat工具。因此,我做了如下样本。 这个结果表明了什么?哪些列需要注意可能的内存问题,例如内存泄漏等。