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

为什么调用-XX: PrintFlagsFinal和-XX: PrintCommandLineFlags时MaxHeapSze的输出不同?

东方华荣
2023-03-14

就像问题一样,当我使用JVM选项-XX PrintFlagsFinal运行程序时,我可以看到打印的MaxHeapSize如下:

 bool MaxFDLimit                                = true            {product}
uintx MaxGCMinorPauseMillis                     = 4294967295      {product}
uintx MaxGCPauseMillis                          = 4294967295      {product}
uintx MaxHeapFreeRatio                          = 70              {product}
**uintx MaxHeapSize                              := 1044381696      {product}**
 intx MaxInlineLevel                            = 9               {product}
 intx MaxInlineSize                             = 35              {product}
 intx MaxJavaStackTraceDepth                    = 1024            {product}

当我使用JVM选项-XX PrintCommandLineFlags运行同一个程序时,我可以看到MaxHeapSize为:

-XX:InitialHeapSize=65192896 **-XX:MaxHeapSize=1043086336** -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC 

你能告诉我为什么这两个不同吗?我想它们应该是一样的。

共有1个答案

杜昆琦
2023-03-14

由于对齐和人机工程学调整,实际堆大小可能与用户在命令行中指定的不同。默认情况下,堆对齐为2MB(参见collectorPolicy.cpp)。

1044381696是1043086336的2MB对齐后的最终堆大小。

 类似资料:
  • 我正在docker容器中的apline linux系统上运行java应用程序,我想找出MaxHeapSize的值,所以我使用了几个命令:java-XX:printflasfinal、jinfo-flag MaxHeapSize、jmap-heap,但输出让我感到困惑。jinfo-flag MaxHeapSize、jmap-heap的输出是一致的。然而,java-XX:PrintFlagsFinal

  • 问题内容: 查看以下代码,并请解释为什么该方法和函数给出两个不同的输出。 输出: 问题答案: 计算子字符串的非重叠出现次数: 返回substring sub 的不重叠出现的次数。 在字符串中恰好有一个这样的子字符串出现的位置:就在开头。因此计数 应该 返回。 一般来说,空字符串将匹配给定字符串中的 所有位置 ,包括开始和结束处的正确 位置 ,因此计数应 始终 为长度加1: 这是因为空字符串被认为存

  • <代码>car\U gear字段在数据库中填写为“stick”(斗杆)。在图像标记后,输出更改为“自动” 为什么结果是$car\u result1-

  • 参考这个答案,Lev说包括开始和停止索引,所以我尝试了这个: 但它们也不同。为什么啊? 有人能帮我吗?

  • 本文向大家介绍平时调试用console.log的输出结果可信吗?为什么?相关面试题,主要包含被问及平时调试用console.log的输出结果可信吗?为什么?时的应答技巧和注意事项,需要的朋友参考一下 console.log()打印出来的内容并不是一定百分百可信的内容。一般对于基本类型number、string、boolean、null、undefined的输出是可信的。但对于Object等引用类型

  • 问题内容: 这可能是一个愚蠢的问题,但是我正在测试我对Python的一些假设,并对为什么以下代码段在线程中调用时不退出而在主线程中调用时退出而感到困惑。 sys.exit()的文档指出,该调用应从Python退出。从该程序的输出中可以看到,“ post thread exit”从不打印,但是即使在线程调用退出之后,主线程仍继续运行。 是否为每个线程创建了一个单独的解释器实例,并且对exit()的调