• JVM 常用参数


    跟踪垃圾回收

    -XX:PrintGC

    -XX:+PrintGCDetails 更详细的信息,新生代GC还是老生代GC,永久区的GC,gc的时间


    Heap

    PSYoungGen total 76288K, used 1311K [0x000000076ab00000, 0x0000000770000000, 0x00000007c0000000)

    eden space 65536K, 2% used [0x000000076ab00000,0x000000076ac47c58,0x000000076eb00000)

    from space 10752K, 0% used [0x000000076f580000,0x000000076f580000,0x0000000770000000)

    to space 10752K, 0% used [0x000000076eb00000,0x000000076eb00000,0x000000076f580000)

    ParOldGen total 175104K, used 478K [0x00000006c0000000, 0x00000006cab00000, 0x000000076ab00000)

    object space 175104K, 0% used [0x00000006c0000000,0x00000006c0077b80,0x00000006cab00000)

    Metaspace used 2777K, capacity 4486K, committed 4864K, reserved 1056768K

    class space used 299K, capacity 386K, committed 512K, reserved 1048576K

    -XX:+PrintHeapAtGC : 每次gc前后分别打印堆信息

    -XX:+PrintGCTimeStamps 分析gc发生的时间,在每次gc时额外输出gc发生的时间

    -XX:+PrintGCApplicationConcurrentTime 由于gc会引起应用程序停顿,特别关注app的执行时间

    -XX:+PrintGCApplicationStoppedTime 停顿时间

    -XX:+PrintReferenceGC 跟踪系统软引用,弱引用,Finallize队列

    -Xloggc:log/gc/log 默认gc日志控制台输出,该参数指定写入日志文件

    类加载和卸载的跟踪

    -verbose:class 跟踪类的加载和卸载 ,最后一次加载的类没有机会被卸载

    -XX:TraceClassLoading 单独跟踪类的加载

    -XX:TraceClassUnloading 跟踪类的卸载

    -XX:+PrintClassHistogram 运行时打印和查看系统类的分布情况

    系统参数查看

    -XX:+PrintVMOptions 打印虚拟机接收到的命令行显示参数

    -XX:+PrintCommandLineFlags 包含显示指定和虚拟机自行设置的参数

    -XX:+PrintFlagsFinal 打印系统所有的参数值

    让性能飞起来 :堆的配置参数

    -Xms 初始堆的大小

    -Xmx 最大堆

    实际最大可用内存(与-Xmx存在偏差) = -Xmx最大内存 - from区的大小 (垃圾回收空间换时间的算法)

    设置-Xms和-Xmx大小相等,可以减少gc的次数

    新生代配置

    -XX:SurvivsorRatio 设置新生代eden和from/to的比例关系 : eden/from = eden/to

    -Xmn 年轻代大小

    基本配置策略:尽可能将对象预留在新生代,减少老年代GC的次数

    ## 其他参数
    (1)最高优先级: -XX:NewSize=1024m和-XX:MaxNewSize=1024m
    (2)次高优先级: -Xmn1024m (默认等效效果是:-XX:NewSize==-XX:MaxNewSize==1024m)
    (3)最低优先级:-XX:NewRatio=2

    -XX:NewRatio 新生代和老年代的比例

    堆溢出处理

    -XX:HeapDumpOnOutOfMemoryError 在内存溢出时导出整个堆信息

    -XX:HeapDumpPath=./a.dump 导出堆信息的路径

    -XX:OnOutOfMemoryError=脚本文件 在内存溢出时执行脚本(可以是导出java线程信息)

    非堆内存的参数配置

    方法区

    jdk1.6和1.7

    -XX:PermSize

    -XX:MaxPermSize

    jdk1.8

    -XX:MaxMetaspaceSize

    -Xss

    直接内存

    -XX:MaxDirectMemorySize 最大可用直接内存,默认值为最大堆空间

    直接内存适合申请次数少,访问较为频繁的场合,如果内存空间本身需要频繁申请,并不适合使用直接内存。

    虚拟机的工作模式 :Server 和Client

    -client

    -server : 64位操作系统更倾向于使用server模式


    java -version

    java -client -version

    java -server -version

    两种模式下,可使用-XX:PrintFlagsFinal对比两种模式下参数的差异

  • 相关阅读:
    css的三种特性
    css选择器
    margin:0 auto 与 text-align:center 的区别
    JS如何实现点击页面内任意的链接均加参数跳转
    css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version=)
    移动端页面前端设计随笔整理
    理解:Before和:After伪元素
    时下流行的css3页面纵向滑动效果
    webapp网页调试工具Chrome Devtools
    做手机web半年遇到的问题及解决方法
  • 原文地址:https://www.cnblogs.com/fubinhnust/p/11956013.html
Copyright © 2020-2023  润新知