java性能优化权威指南读后笔记

  • 三重境界

  1.花似雾中看:对于遇到的额问题还看不清,不知道真真假假,是是非非。

  2.悠然见南山:虽然刚开始对这个领域还不清楚,但随着时间推移,你对它有许多自己的见解,但对重要的知识还缺乏理解。

  3.一览众山小:你对这个领域已经很熟悉了,能够游刃有余的解决遇到的问题。

  • 三大步骤

  1.性能监控

    1.JVM性能监控:

      1.监控垃圾收集报告(GC日志)

      2.监控JIT编译器

      3.监控内加载

    2.依据:

      1.GC日志

      2.堆转储快照

      3.线程快照

      4.异常堆栈

  2.性能分析

    1.jps:显示指定系统内的所有JVM进程

    2.jstat:收集JVM各方面的运行数据

    3.jinfo:显示JVM配置信息

    4.jmap:形成堆转储快照(heapdump文件)

    5.jhat:分析heapdump文件

    6.jstack:显示JVM的线程快照

    7.jconsole(可视化工具)

    8.visualVM(可视化工具)

  3.性能调优

    下面是粗略版的JVM调优图:

    1.对垃圾收集性能调优

      影响垃圾收集性能的属性:吞吐量,延迟,内存占用

    2.原则

      

      1.内存占用

        对于新生代,老年代,永久代设置内存初始大小和最大值在这就不累赘了,网上有很多这样的资料。对于怎么计算内存的初始值,下面有一张表大概计算:

          

      2.调优延迟

        

        通过修改新生代,老年代,永久代的大小,来影响minorGC和fullGC的次数,来达到控制时间延迟的调节。

      3.调节晋升和阈值

        是新生代到老年代的年龄大小的阈值设置。可以通过-XX:+PrintTenuringDistrubution来监控晋升的分布情况。

        

JVM性能优化读后笔记的更多相关文章

  1. jvm性能优化及内存分区

     jvm性能优化及内存分区 2012-09-17 15:51:37 分类: Java Some of the default values for Sun JVMs are listed below. ...

  2. JVM 性能优化, Part 4: C4 垃圾回收

    ImportNew注:本文是JVM性能优化 系列-第4篇.前3篇文章请参考文章结尾处的JVM优化系列文章.作为Eva Andreasson的JVM性能优化系列的第4篇,本文将对C4垃圾回收器进行介绍. ...

  3. JVM性能优化, Part 3 垃圾回收

    ImportNew注:本文是JVM性能优化 系列-第3篇-<JVM性能优化, Part 3 —— 垃圾回收> 第一篇 <JVM性能优化, Part 1 ―― JVM简介 > 第 ...

  4. JVM性能优化, Part 2 ―― 编译器

    作为JVM性能优化系列文章的第2篇,本文将着重介绍Java编译器,此外还将对JIT编译器常用的一些优化措施进行讨论(参见“JVM性能优化,Part 1″中对JVM的介绍).Eva Andreasson ...

  5. JVM性能优化, Part 1 ―― JVM简介

    JVM性能优化这些列文章共分为5章,是ImportNew上面翻译自Javaworld: 第1章:JVM技术概览 第2章:编译器 第3章:垃圾回收 第4章:并发垃圾回收 第5章:可伸缩性 众所周知,Ja ...

  6. 一文学会JVM性能优化

    实战性能优化 1 重新认知JVM 之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程,现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图. 执行引擎:用于执行JVM字 ...

  7. JVM性能优化简介

    01. JVM是什么    概述:        大白话:             全称Java Virtual Machine(Java虚拟机), 它是一个虚构出来的计算机, 通过实际的计算机来模拟 ...

  8. JVM性能优化系列-(1) Java内存区域

    1. Java内存区域 1.1 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.主要包括:程序计数器.虚拟机栈.本地方法栈.Java堆.方法区(运 ...

  9. JVM性能优化系列-(2) 垃圾收集器与内存分配策略

    2. 垃圾收集器与内存分配策略 垃圾收集(Garbage Collection, GC)是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如 ...

随机推荐

  1. 软件推荐----数据库数据处理Navicat Premium

    一般情况下,企业对数据库的管控很严,通常管控分成以下: 对整台服务器管理权限,如:操作系统Administrator+SA 对单个数据库(Oracle的表空间)完全权限,如:SQL DB_Owner ...

  2. (转)Mysql哪些字段适合建立索引

    工作中处理数据时,发现某个表的数据达近亿条,所以要为表建索引提高查询性能,以下两篇文章总结的很好,记录一下,以备后用. 数据库建立索引常用的规则如下: 1.表的主键.外键必须有索引: 2.数据量超过3 ...

  3. ABAP笔记

    ABAP程序开发,经常会遇到报表开发需求.使用ABAP的Report类型程序开发报表十分便利,用很少的代码就可以快速开发出一个报表.这种报表需求,抛开各种细枝末节,都可以归结为“三步走”:1.选择屏幕 ...

  4. js滚动到指定位置

    序言:在网络上百度,关键字:“js div滚动到指定位置”,结果基本上大同小异!各种大神都给我们总结出来了四种滚动到指定位置的办法,可惜再下愚钝,每个都不会用,所以写了一个超级简单的方法来使初学者一看 ...

  5. IE8图片上传预览

    $("#smallImg").attr('style', "filter:progid:DXImageTransform.Microsoft.AlphaImageLoad ...

  6. JUnit4源码学习笔记

    先上一个在Spring-test下运行的调用栈 自底向上: JUnitStarter IDEA对JUnit的支持,调用JUnitCore.run(Runner),将注解@RunWith指定的Runne ...

  7. Mybatis学习 day02

    第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] ...

  8. Mybatis pageHelper.startPage(...)是物理分页

    使用PageHelper.startPage(...)进行物理分页 业务需求只显示其中的100条数据 之前是在业务逻辑里对参数limit进行了处理 后来试试sql的limit查询100条数据 但是不确 ...

  9. 函数(一.return)

    #return的用法:#return用于退出函数,选择性的返回一个表达式.def test1(a,b): total = a+b return total print(total) def test2 ...

  10. Spring-boot中@ConfigurationProperties,@Value,@PropertySource

    1.利用@ConfigurationProperties获取配置的值,@ConfigurationProperties是springboot提供的基于安全类型的配置放置. application.pr ...