zoukankan      html  css  js  c++  java
  • 深入JVM《三》 JVM常用配置参数

    一、Trace 跟踪参数

    1、打印GC的简要信息
    -verbose:gc
    -XX:+PrintGC
     
    2、打印GC详细信息
    -XX:+PrintGCDetails
    3、打印CG发生的时间戳
    -XX:+PrintGCTimeStamps
     
     
    4、指定GC log的位置,以文件输出
    -Xloggc:log/gc.log
     
     
    5、每次一次GC后,都打印堆信息
    -XX:+PrintHeapAtGC
     
     
    6、监控类的加载
    -XX:+TraceClassLoading
     
     
    7、按下Ctrl+Break后,打印类的信息。分别显示:序号、实例数量、总大小、类型
    -XX:+PrintClassHistogram
     
     
     
     

    二、堆的分配参数

    1、指定最大堆和最小堆
    -Xmx –Xms
    -Xmx20m -Xms5m  运行代码:
    System.out.print("Xmx=");
    System.out.println(Runtime.getRuntime().maxMemory()/1024.0/1024+"M");
    
    System.out.print("free mem=");
    System.out.println(Runtime.getRuntime().freeMemory()/1024.0/1024+"M");
    
    System.out.print("total mem=");
    System.out.println(Runtime.getRuntime().totalMemory()/1024.0/1024+"M");
     
     
    2、设置新生代大小
    -Xmn
     
     
    3、新生代(eden+2*s)和老年代(不包含永久区)的比值。
         4 表示 新生代:老年代=1:4,即年轻代占堆的1/5
    -XX:NewRatio
     
     
    4、设置两个Survivor区和eden的比(s0/s1区,或者叫from/to区,幸存区)
          8表示 两个Survivor :eden=2:8,即一个Survivor占年轻代的1/10
    -XX:SurvivorRatio
     
    5、OOM时导出堆到文件
    -XX:+HeapDumpOnOutOfMemoryError
    6、导出OOM的路径(堆dump的时候放置的位置)
    -XX:+HeapDumpPath
    7、在OOM时,执行一个脚本
    -XX:OnOutOfMemoryError
    
    // %p 是当前线程的pid
    -XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p
    // 当程序OOM时,会执行脚本printstack.bat,如果脚本里写
    // D:/tools/jdk1.7_40/bin/jstack -F %1 > D:/a.txt   在D:/a.txt中将会生成线程的dump
    // 可以在OOM时,发送邮件,甚至是重启程序
    8、堆的分配参数总结
     
    a)、根据实际事情调整新生代和幸存代的大小
    官方推荐新生代占堆的3/8
    幸存代占新生代的1/10
    在OOM时,记得Dump出堆,确保可以排查现场问题
     
     
    三、永久区
     
    1、设置永久区的初始空间和最大空间。他们表示,一个系统可以容纳多少个类型
    -XX:PermSize  -XX:MaxPermSize
    堆空间实际占用非常少。但是永久区溢出 一样抛出OOM
    如果堆空间没有用完也抛出了OOM,有可能是永久区导致的
     
     
     
     
    四、栈的分配
    1、栈空间分配。
         通常只有几百K。决定了函数调用的深度。(会影响递归的次数)
        每个线程都有独立的栈空间
        局部变量、参数 分配在栈上
    -Xss
     

    文章源自微信公众号【刍荛采葑菲】,转载请注明。

  • 相关阅读:
    ASP.NET编程的十大技巧
    C#学习心得(转)
    POJ 1177 Picture (线段树)
    POJ 3067 Japan (树状数组)
    POJ 2828 Buy Tickets (线段树)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4235 Flowers (线段树)
    POJ 2886 Who Gets the Most Candies? (线段树)
    POJ 2418 Cows (树状数组)
    HDU 4339 Query (线段树)
  • 原文地址:https://www.cnblogs.com/churao/p/8494165.html
Copyright © 2011-2022 走看看