我正在运行Java 1.4(java版本"1.4.2_08"(
我想知道JVM
的当前堆大小是多少。
当我运行以下命令时
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize| PermSize|ThreadStackSize'
我收到此错误:
Unrecognized VM option '+PrintFlagsFinal'
Could not create the Java virtual machine.
我浏览了一些文章,并在Java 1.4版本不支持的情况下了解了此命令。
我能够挖掘出这个: http://sysadminsjourney.com/content/2008/09/05/profiling-your-java-142-memory-heap/
您可能感兴趣的部分:
关键是让你的应用在向它发送 QUIT 信号时执行堆转储。在应用程序启动时将此选项附加到 Java 选项中:
-XX:+HeapDumpOnCtrlBreak
之后,您需要向其发送SIGQUIT(kill -3 <PID>
(。它会将堆转储到一个文件中,您可以去镇上。
但请考虑升级。
根据 5.0 Java TM 虚拟机中的人体工程学,如果您尚未在 Java 1.4 进程命令行中指定-Xms
或-Xmx
参数,则参数将在 4 MB 到 64 MB 之间:
缺省情况下,在 J2SE 平台版本 1.4.2 中,进行了以下选择
- 串行垃圾回收器
- 堆大小
- 初始堆大小为 4 MB
- 最大堆大小为 64 MB
- 客户端运行时编译器
您可以尝试安装 Java 1.4 的 JMX 扩展以获取运行时值,但不幸的是,似乎不再可从 Oracle 官方网站下载。
如果没有JMX扩展,您将无法使用JConsole,根据文档:
不可附加的应用程序,已禁用管理代理。其中包括在 Java SE 1.4.2 平台上启动的应用程序,或者在没有
-Dcom.sun.management.jmxremote
或com.sun.management.jmxremote.port
选项的情况下在Java SE 5.0 平台上启动的应用程序。
你在做考古学。我认为你应该接受你不会得到一个完美的答案,只是看看操作系统分配给JVM进程的内存量。