• Java常用配置项和命令行


    JVM配置项说明

    1、java虚拟机可配置参数整理
    • java参数配置参数分成三类
      • 标准参数(-开头) 如-version
      • 非标准参数(-X开头)
      • 非稳定参数(-XX开头)
    ## 第一部分:JMM配置参数
    -Xmn  	新生代大小
    -Xms	初始内存大小
    -Xmx	堆最大值
    -xxs	线程栈内存
    -XX:NewSize=2.125m		新生代大小
    -XX:MaxNewSize=size		新生代最大
    -XX:MaxPermSize=64m		最大方法区
    -XX:PermSize=64m		方法区
    -XX:MaxTenuringThreshold=15		新生代存活次数
    -XX:MaxHeapFreeRatio=70		GC最大堆内存闲置比率
    -XX:MinHeapFreeRatio=40		最小比率
    -XX:NewRatio=2				新生代和老年代的比率
    -XX:ThreadStackSize=512			线程栈大小
    -XX:PretenureSizeThreshold= size
    -XX:SurvivorRatio=8		伊甸区容量比率
    
    ## 第二部分:GC配置参数
    -XX:+UseSerialGC    使用SerialGC
    -XX:+UseParallelGC   使用ParallelGC
    -XX:+UseParNewGC	使用ParNewGC
    -XX:ParallelGCThreads	并发线程数
    -XX:+UseParallelOldGC	使用ParallelOldGC
    -XX:+UseConcMarkSweepGC
    -XX:-DisableExplicitGC
    -XX:+ScavengeBeforeFullGC
    ## 第三部分:日志打印配置参数
    -XX:-CITime
    -XX:ErrorFile=./hs_err_pid.log
    -XX:-ExtendedDTraceProbes
    -XX:HeapDumpPath=./java_pid.hprof
    -XX:-HeapDumpOnOutOfMemoryError
    -XX:-PrintGC		日志打印
    -XX:-PrintGC Details		详细日志打印
    -XX:-PrintGCTimeStamps
    -XX:-TraceClassLoading		
    -XX:-TraceClassLoadingPreorder
    -XX:-TraceClassResolution
    -XX:-TraceClassUnloading
    -XX:-TraceLoaderConstraints
    ## 第四部分:其他的
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    2、经典的参数搭配整理
    -Xms4096M 
    -Xmx4096M 
    -Xmn2048M  
    -XX:MetaspaceSize=256M
    -XX:MaxMetaspaceSize=256M
    -XX:+UseParNewGC  # 年轻代GC
    -XX:+UseConcMarkSweepGC # 老年代GC
    -XX:+CMSScavengeBeforeRemark # 标记钱先执行一次新生代GC,建议去掉
    -XX:CMSInitiatingOccupancyFraction=75 
    -XX:+UseCMSInitiatingOccupancyOnly  # 解决GC回收的毛刺问题
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    3、一般可调有参数
    ## 堆内存分配
    -Xms10000M  ## 1、内存不足错误,可以扩大堆内存
    -Xmx10000M 
    -Xmn5000M   ## 2、大对象太多,可以将年轻代设置小一点
    -Xss256K    ## 3、如果高并发环境,单个线程堆栈可以适当调小
    -XX:MaxTenuringThreshold=1 
    -XX:SurvivorRatio=30   # 4、小对象太多,可以设置比率大一点
    -XX:TargetSurvivorRatio=50 
    -Xnoclassgc  
    -XX:PermSize=256m    
    -XX:MaxPermSize=256m   # 5、静态数据太多,可以设置大一点,反之小一点
    -XX:MetaspaceSize=200M # 6、如果动态代理比较多,可以设置大一点
    ## 垃圾回收器设置
    -XX:+UseParNewGC   ## 新生代使用PartNew回收器
    -XX:+UseConcMarkSweepGC   ## 老年代使用CMS回收器 
    -XX:ParallelGCThreads=24   # 设置并发回收线程数
    -XX:ConcGCThreads=24 
    -XX:CMSInitiatingOccupancyFraction=80 
    -XX:+CMSParallelRemarkEnabled 
    -XX:+CMSScavengeBeforeRemark 
    -XX:+ExplicitGCInvokesConcurrent 
    -XX:+UseTLAB 
    -XX:TLABSize=64K
    # 日志打印参数设置
    -XX:+PrintGCDetails 
    -XX:+PrintGCTimeStamps 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    JVM工具命令行整理

    • javac java源文件编译命令
    • java jar包发布命令
      • 例如: java -jar …jar
      • 用法 java [-options] class [args…]
    • jar java文件打包指令
      • 用法 jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files …
    • javadoc 生成java文档
      • javadoc [options] [packagenames] [sourcefiles] [@files]
    • javap java反编译
  • 相关阅读:
    灵境:为每个一需要的人配上一个后台
    部署WekaFS并行文件系统的10大理由
    从多表连接视图对比人大金仓和Oracle
    【Linux】进程地址空间
    牛客: BM17 二分查找-I
    8–9月,​Sui Move智能合约工作坊将在台北+线上举行
    Ambari界面介绍
    nexus部署私库及上传和拉包处理
    Java-网络编程
    绘图(二)五子棋小游戏
  • 原文地址:https://blog.csdn.net/QingChunBuSanChang/article/details/132730373