设为首页 加入收藏

TOP

Java 程序优化 (读书笔记)(六)
2017-10-13 10:40:36 】 浏览:6182
Tags:Java 程序 优化 读书 笔记
gc

            -XX:+PrintGC

            -XX:+PrintGCDetails

            -XX:+PrintGCTimeStamps : 打印每次GC的发生时间

            -XX:+PrintTenuringDistribution : 察看新生对象晋升老年代的实际阈值

            -XX:+PrintHeapAtGC : 每次GC打印堆的使用情况

            -XX:+PrintGCApplicationStoppedTime : 显示应用程序在GC发生时的停顿时间

            -XX:+PrintGCApplicationConcurrentTime : 应用程序在GC停顿时间的执行时间

            -Xloggc:C:\gc.log : GC日志

        5) 类和对象跟踪

            -XX:+TraceClassLoading : 跟踪类加载情况

            -XX:+TraceClassUnloading : 跟踪类的卸载情况

            -verbose:class :  跟踪类的加载和卸载情况

            -XX:+PrintClassHistogram : 当按下Ctrl + Break,输出系统内类的统计信息

        6) 控制GC

            -XX:DisableExplicitGC : 禁止显示GC操作,避免程序员大量使用System.gc()降低程序性能

            -Xnoclassgc : 禁止回收类(class,而不是对象实例)

        7) 选择类校验器

            -XX:-UseSplitVerifier :实用旧的类校验器,JDK1.6默认开启新的类校验器

            -XX:-FailOverToOldVerifier : 关闭再次校验功能, 默认新的校验器失败会再次使用老的校验器

        8) Solaris下线程控制

            -XX:+UseBoundThreads : 绑定所有用户线程到内核线程,减少线程进入饥饿状态的次数

            -XX:+UseLWPSychronization : 使用内核线程代替线程同步

            -XX:+UseVMInterruptibleIO : 允许运行时中断线程

        9) 使用大页

            -XX:+UseLargePages : 启用大页

            -XX:LargePageSizeInBytes : 指定大页的大小

        10) 压缩指针

            -XX:+UseCompressedOops : 打开指针压缩,压缩class的属性指针(静态成员),对象的属性指针,普通对象的每个元素指针, 能节省内存,但是会消耗一定的性能

    5.6 实战JVM调优

        1) Tomcat简介与启动加速 : 减少GC次数,扩大新生代,禁止显示调用GC

        2) 一个示例web : 每个用户分配1m空间

        3) JMEter介绍和使用 : 基于java的性能测试和压力测试工具,生成包括响应时间,错误数和吞吐量的报告

        4) 调优前Web应用运行状况 : GC过多,吞吐量为38.7/s

        5) 调优过程 : 确定堆内存大小,合理分配新生代和老年代,确定永久区大小,选择垃圾收集器,对垃圾收集器设置,禁用显示gc,进用类元数据回收,禁用类验证等

            设置堆空间和永久区,禁用显示gc,去掉类验证,吞吐量为47.9/s

            -Xmx512M(-Xmx256M)

            -Xms512M

            -XX:permSize=32M

            -XX:MaxPermSize=32M

            -XX:+DisableExplicitGC

            -Xverify:none

            使用并行回收收集器,吞吐量为51/s

            -XX:+UseParallelGC

            -XX:+UseParallelOldGC

            -XX:ParallelGCThreads=8

6 Java性能调优工具

    6.1 Linux命令行工具

        1) top : 显示系统中各个进程的资源占用状况

        2) sar : 周期性对内存,I/O和CPU情况采样 

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

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目