堆栈参数调整(基于 Sun Hotspot )
- -Xss
:设置任何线程的本地方法栈大小 - -Xms
:设置JVM初始堆大小 - -Xmx
:设置JVM最大堆大小 - -XX:PermSize=
:设置JVM Perm generation的初始大小 - -XX:MaxPermSize=
:设置JVM Perm Generation的最大大小
注意:所有以-X开头的JVM参数都不是标准参数(未包含在JVM规范中),即可能不会被所有版本的JVM实现;以-XX开头的JVM参数可能指定了特定的系统平台,且可能在没有通知的情况下更改,因此不推荐使用。
- 通过jdk5 自带的JConsole查看是否有memory leak
- 先以下面的方式启动需要调优的目标程序JVM
cd C:\Program Files\Java\jdk1.6.0_21\demo\jfc\SwingSet2
java -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=localhost -jar SwingSet2.jar
- 打开JConsole(JDK5)/JVisualVM(JDK6)以本地进程方式连接目标进程.查看memory, classes, thread,CPU情况。 注意在我Vista机器上 必须加上 -Djava.rmi.server.hostname=localhost 才能连接,否则报“连接失败,是否重试”的错误。
- 查看heap中的主要对象,用jmap 可以查看histogram
- 查看对象的reachable jhat