Java :如何检查当前的烫发/烫发大小?

2022-09-02 14:18:49

昨天,当我运行WebLogic Application Server 11g安装程序时,我遇到了一个OutOfMemory错误,所以我在谷歌上搜索了答案:

java -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -jar wls1032_generic.jar

一切都:)

但是,当我对解决方案三思而后行时,我可能犯了一个错误:我怎么知道这些解决方案的当前设置?在覆盖它们之前,我当然需要检查它们的值,对吧?

有什么想法吗?

相关链接:SO上另一个帖子的人建议试错法,这并不理想。

提前非常感谢。


答案 1

您可以使用该实用程序检查正在运行的 JVM 的任何 JVM 标志的值。jinfo.exe

%JAVA_HOME%\bin\jinfo.exe -flag <flagName> <pid>

所以要检查JVM选项的值,你可以运行-XX:PermSize

%JAVA_HOME%\bin\jinfo.exe -flag PermSize <pid>


答案 2

你可以在这里使用,它是JVM堆转储工具。jmap

例如:

jmap -heap 5900

它将打印:

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 989855744 (944.0MB)
   NewSize          = 1310720 (1.25MB)
   MaxNewSize       = 17592186044415 MB
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 21757952 (20.75MB)
   MaxPermSize      = 85983232 (82.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 242352128 (231.125MB)
   used     = 9196056 (8.770042419433594MB)
   free     = 233156072 (222.3549575805664MB)
   3.79450185805672% used
From Space:
   capacity = 41877504 (39.9375MB)
   used     = 0 (0.0MB)
   free     = 41877504 (39.9375MB)
   0.0% used
To Space:
   capacity = 42663936 (40.6875MB)
   used     = 0 (0.0MB)
   free     = 42663936 (40.6875MB)
   0.0% used
PS Old Generation
   capacity = 80609280 (76.875MB)
   used     = 34187936 (32.604156494140625MB)
   free     = 46421344 (44.270843505859375MB)
   42.41191088668699% used
PS Perm Generation
   capacity = 85393408 (81.4375MB)
   used     = 63472624 (60.53221130371094MB)
   free     = 21920784 (20.905288696289062MB)
   74.32965317416539% used

它获取内存信息(包括PermGen)。是 Java 的进程 ID。5900


推荐