如何在 Windows 中标识缺省 Java 堆大小

2022-09-02 11:42:12

我在我的机器上运行日食应用程序。我有两个疑问

  1. 我想知道如何检查jvm用于运行应用程序的默认堆大小。我正在使用Windows机器来运行java应用程序。我尝试通过以下方式检查默认堆大小

ControlPanel--->程序--->JavaSetting--> JavaTab -->View Button ---> JavaRuntimeEnvironment settings 窗口 ---> Userstab --RuntimeParameters 下的>值

但是在我的系统中,没有定义运行时参数。是否有可以通过命令提示符执行的命令来检查计算机中的默认堆大小。

  1. 如何增加堆大小参数并从命令提示符运行 eclipse 插件应用程序。例如:要增加堆大小并执行jar文件,我们使用以下命令。我想知道如何设置堆参数并执行我的java应用程序,这是一个文件。我尝试使用以下命令执行,但命令提示符无法识别该命令java -Xms64m -jar MyApp.jarexe

    java -Xms512m iepsd.exe

我的Java应用程序在哪里。iepsd.exe


答案 1

您可以使用 在处理完所有命令行参数和缺省值后,将大量内部选项打印到 JVM 中。该选项对应于 InitialHeapSize,该选项对应于 MaxHeapSize。-XX:+PrintFlagsFinal-Xms-Xmx

要查找 JVM 在 Windows 上使用的默认最大堆大小,请运行:

javaw -XX:+PrintFlagsFinal | find "MaxHeapSize"

要查找默认的初始堆大小,请运行:

javaw -XX:+PrintFlagsFinal | find "InitialHeapSize"

答案 2

尝试以下命令以获取详细结果

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

结果是

C:\Users\amar.magar>java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"
 intx CompilerThreadStackSize                   = 0                                   {pd product}
uintx ErgoHeapSizeLimit                         = 0                                   {product}
uintx HeapSizePerGCThread                       = 87241520                            {product}
uintx InitialHeapSize                          := 268435456                           {product}
uintx LargePageHeapSizeThreshold                = 134217728                           {product}
uintx MaxHeapSize                              := 4271898624                          {product}
 intx ThreadStackSize                           = 0                                   {pd product}
 intx VMThreadStackSize                         = 0                                   {pd product}

java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)