Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java进程中确定有效的Java内存参数?_Java_Intellij Idea_Weblogic 10.x - Fatal编程技术网

如何从Java进程中确定有效的Java内存参数?

如何从Java进程中确定有效的Java内存参数?,java,intellij-idea,weblogic-10.x,Java,Intellij Idea,Weblogic 10.x,我通常通过在IntelliJ IDEA中启动WebLogic进程来调试我的应用程序。这两种应用程序都提供了向Java命令行指定可选内存参数的方法(例如,-Xms1024m-Xmx2560m-XX:PermSize=1024m等),还有各种环境变量(例如,Java_选项)也可能发挥作用 我如何确定这些指定选项中的哪一个是“赢的”,即从Java进程内部,我如何找到强加给Java进程的内存规范?我看到的所有系统属性似乎都没有显示它们。如果使用jconsole(java jdk附带)连接到Web服务器:

我通常通过在IntelliJ IDEA中启动WebLogic进程来调试我的应用程序。这两种应用程序都提供了向Java命令行指定可选内存参数的方法(例如,-Xms1024m-Xmx2560m-XX:PermSize=1024m等),还有各种环境变量(例如,Java_选项)也可能发挥作用

我如何确定这些指定选项中的哪一个是“赢的”,即从Java进程内部,我如何找到强加给Java进程的内存规范?我看到的所有系统属性似乎都没有显示它们。

如果使用jconsole(java jdk附带)连接到Web服务器:

jconsole <pid>
jconsole
您可以转到VM摘要选项卡以查看传递到Web服务器的所有VM参数。这还将显示当前堆大小和最大堆大小。如果有重复的参数,通常情况下,列表中的最后一个内存参数就是所使用的参数。如果您对此有更多问题,可以在这里查看

如果使用jconsole(java jdk附带)连接到Web服务器:

jconsole <pid>
jconsole
您可以转到VM摘要选项卡以查看传递到Web服务器的所有VM参数。这还将显示当前堆大小和最大堆大小。如果有重复的参数,通常情况下,列表中的最后一个内存参数就是所使用的参数。如果您对此有更多问题,可以在这里查看


您可以使用JMX调用获取当前堆大小,使用运行时获取最大内存大小。但是,我将使用VisualVM,因为它将向您显示此信息,而无需编写任何代码。
Runtime.getRuntime().maxMemory()
将返回
-Xmx
的值(以字节为单位);但是,我认为没有办法获得
-Xms
的值。此外,您可能需要仔细查看Codahale的度量包。您可以使用JMX调用获取当前堆大小,并使用运行时获取最大内存大小。但是,我将使用VisualVM,因为它将向您显示此信息,而无需编写任何代码。
Runtime.getRuntime().maxMemory()
将返回
-Xmx
的值(以字节为单位);然而,我不相信有一种方法可以获得
-Xms
的值。另外,您可能想好好看看Codahale的Metrics包