`
MauerSu
  • 浏览: 495098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JVM 内存分析

阅读更多
源:http://kevin1.iteye.com/blog/1538471
1.获取java程序进程号
Java代码  收藏代码

    jps 



2.jmap
Java代码  收藏代码

    jmap pid #打印内存使用的摘要信息 
    jmap –heap pid #java heap信息 
    jmap -histo:live pid #统计对象count ,live表示在使用 
    jmap -histo pid >mem.txt #打印比较简单的各个有多少个对象占了多少内存的信息,一般重定向的文件 
    jmap -dump:format=b,file=mem.dat pid #将内存使用的详细情况输出到mem.dat 文件,可以用jvisualvm等工具进行内存分析 
      



3.jstack
Java代码  收藏代码

    jstack $PID 
    可以找出cpu使用最高的对象,jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息 



4.jinfo
Java代码  收藏代码

    jinfo $PID 
    Java Configuration Info 



5.jstat
Java代码  收藏代码

    jstat -gcutil pid #统计gc信息统计 
    jstat -gcnewcapacity pid #年轻代对象的信息及其占用量 
    更多详情见: http://www.2cto.com/kf/201109/105988.html 



6.参数设定
Java代码  收藏代码

    -XX:PrintGCDetails 控制台显示收集器日志信息 
    -Xms 20M、 -Xmx20M -Xmn10M 堆大小为20M,不可扩展,其中新生代为10M 
    -XX:+PrintTenuringDistribution=15 年龄多大进入老年代,默认为15 
    -XX:HandlePromotionFailure=true|false 担保失败,新生代没有空间,可以直接放入老年代中,如果为true,则只进行一次Minior GC,否则进行一次Full GC 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics