设为首页 加入收藏

TOP

Java 程序优化 (读书笔记)(五)
2017-10-13 10:40:36 】 浏览:6180
Tags:Java 程序 优化 读书 笔记
:CMSInitiatingOccupancyFraction : 设置CMS收集器在老年代空间使用多少后触发,默认68%

                -XX:+UseCMSCompactAtFullCollection : 设置CMS收集器在完成垃圾收集后是否进行一次内存碎片整理

                -XX:CMSFullGCsBeforeCompation : 设置多少次CMS垃圾回收后进行内存压缩

                -XX:+CMSClassUnloadingEnabled : 允许对类元数据进行回收

                -XX:+CMSParallelRemarkEnabled : 启用并行标记

                -XX:CMSInitiatingPermOccupancyFraction : 永久区达到此阈值,启动CMS回收(前提是  -XX:CMSClassUnloadingEnabled激活)

                -XX:UseCMSInitiatingOccupancyOnly : 达到阈值才进行CMS回收

                -XX:+CMSIncrementalMode : 使用增量模式,适合单CPU

            4) 与G1回收器相关参数

                -XX:+UseG1GC : 使用G1回收器

                -XX:+UnlockExperimentalVMOptions : 允许使用实验性参数

                -XX:MaxGCPauseMillis : 设置最大垃圾停顿时间

                -XX:GCPauseIntervalMillis :  设置垃圾收集间隔时间

            5) 其他参数

                -XX:+DisableExplicitGC : 禁用显示GC

    5.4 常用调优案例和方法

        1) 将新对象预留在新生代 : 新生代的垃圾回收速度高于老年代回收,可设置新生代大小或者新生代和老年代比例调整新生代大小

        2) 大对象进入老年代 : 大对象需要空间,可能导致空间不足或者需要移动大量小对象到老年代,设置-XX:PretenureSizeThreshold

        3) 设置对象进入老年代的年龄 : gc一次年龄+1,年龄到达阈值进入老年代,设置阈值 -XX:MaxTenuringThreshold

        4) 稳定与震荡的堆大小 : 空间大GC速度慢,空间小GC速度快,大部分设置最大最小相同

            -XX:MinHeapFreeRatio : 设置堆空间最小空闲比例,默认40;

            -XX:MaxHeapFreeRatio : 设置对空间最大空闲比例,默认70;

        5) 吞吐量优先案例 : java -Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC

        6) 使用大页案例 : java -Xmx2506m -Xms2506 -Xmn1536m -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC -XX:LargePageSizeInBytes=256m (设置大页大小)

        7) 降低停顿案例 : java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC _XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31

    5.5 实用JVM参数

        1) JIT(Just-In-Time)编译参数 : 运行时,函数运行次数超过阈值,将字节码编译成本地代码提高执行效率,

            -XX:CompileThreshold : 编译阈值

            -XX:+PrintCompilation : 打印JIT编译信息

            -XX:+CITime 打印JIT编译的基本信息

        2) 堆快照(堆Dump) : 发生OOM时导出Dump文件,可以使用Visual VM等工具分析

            -XX:+HeapDumpOnOutOfMemoryError : 发生OOM时导出当前堆快照

            -XX:HeapDumpPath : 指定堆快照信息保存文件位置

        3) 错误处理 : 发生OOM时运行第三方脚本

            -XX:OnOutOfMemoryError=c:\reset.bat

        4) 取得GC信息

            -verbose:

首页 上一页 2 3 4 5 6 7 下一页 尾页 5/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇PHP设计模式(八)桥接模式(Brid.. 下一篇RabbitMq应用一

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目