性能调优

2017/02/12 iteye

堆栈参数调整(基于 Sun Hotspot )

  • -Xss:设置任何线程的本地方法栈大小
  • -Xms:设置JVM初始堆大小
  • -Xmx:设置JVM最大堆大小
  • -XX:PermSize=:设置JVM Perm generation的初始大小
  • -XX:MaxPermSize=:设置JVM Perm Generation的最大大小  

注意:所有以-X开头的JVM参数都不是标准参数(未包含在JVM规范中),即可能不会被所有版本的JVM实现;以-XX开头的JVM参数可能指定了特定的系统平台,且可能在没有通知的情况下更改,因此不推荐使用。  

  1. 通过jdk5 自带的JConsole查看是否有memory leak
    1. 先以下面的方式启动需要调优的目标程序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 
  1. 打开JConsole(JDK5)/JVisualVM(JDK6)以本地进程方式连接目标进程.查看memory, classes, thread,CPU情况。   注意在我Vista机器上 必须加上 -Djava.rmi.server.hostname=localhost 才能连接,否则报“连接失败,是否重试”的错误。  
  2. 查看heap中的主要对象,用jmap 可以查看histogram  
  3. 查看对象的reachable jhat      

Search

    Table of Contents