JVM性能优化读后笔记
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性能优化读后笔记的更多相关文章
- jvm性能优化及内存分区
jvm性能优化及内存分区 2012-09-17 15:51:37 分类: Java Some of the default values for Sun JVMs are listed below. ...
- JVM 性能优化, Part 4: C4 垃圾回收
ImportNew注:本文是JVM性能优化 系列-第4篇.前3篇文章请参考文章结尾处的JVM优化系列文章.作为Eva Andreasson的JVM性能优化系列的第4篇,本文将对C4垃圾回收器进行介绍. ...
- JVM性能优化, Part 3 垃圾回收
ImportNew注:本文是JVM性能优化 系列-第3篇-<JVM性能优化, Part 3 —— 垃圾回收> 第一篇 <JVM性能优化, Part 1 ―― JVM简介 > 第 ...
- JVM性能优化, Part 2 ―― 编译器
作为JVM性能优化系列文章的第2篇,本文将着重介绍Java编译器,此外还将对JIT编译器常用的一些优化措施进行讨论(参见“JVM性能优化,Part 1″中对JVM的介绍).Eva Andreasson ...
- JVM性能优化, Part 1 ―― JVM简介
JVM性能优化这些列文章共分为5章,是ImportNew上面翻译自Javaworld: 第1章:JVM技术概览 第2章:编译器 第3章:垃圾回收 第4章:并发垃圾回收 第5章:可伸缩性 众所周知,Ja ...
- 一文学会JVM性能优化
实战性能优化 1 重新认知JVM 之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程,现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图. 执行引擎:用于执行JVM字 ...
- JVM性能优化简介
01. JVM是什么 概述: 大白话: 全称Java Virtual Machine(Java虚拟机), 它是一个虚构出来的计算机, 通过实际的计算机来模拟 ...
- JVM性能优化系列-(1) Java内存区域
1. Java内存区域 1.1 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.主要包括:程序计数器.虚拟机栈.本地方法栈.Java堆.方法区(运 ...
- JVM性能优化系列-(2) 垃圾收集器与内存分配策略
2. 垃圾收集器与内存分配策略 垃圾收集(Garbage Collection, GC)是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如 ...
随机推荐
- Oracle问题处理
一,如果在Oracle中执行for update操作时,出现一致卡顿现象,此时可能是有其它的进程阻塞了. 处理的方法就是查找出阻塞的进程,然后强制杀死 先查询出阻塞进程: select object_ ...
- oracle修改sequence,查询sequence信息
-- 1.查询sequence当前值. select serviceproviderid.nextval from dual; -- 2.查询sequence最大值SELECT SEQUENCE_NA ...
- Hbase的集群安装
hadoop集群的搭建 搭建真正的zookeeper集群 Hbase需要安装在成功部署的Hadoop平台,并且要求Hadoop已经正常启动. 同时,HBase需要集群部署,我们分别把HBase 部署到 ...
- Django url
urlpatterns = [ url(正则表达式, views视图函数,参数,别名),] 参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符 ...
- JeecgBoot版本4月份新版即将发布,抢先体验。。
JeecgBoot版本4月份新版即将发布,抢先体验.. 即将发布版本-更新日志: 1.代码生成器GUI工具 2.支持一对多代码生成器 3.支持按钮权限 4.支持数据权限 ...
- Redis内存分析工具redis-rdb-tools
一.安装redis-rdb-tools(项目地址:github) # git clone https://github.com/sripathikrishnan/redis-rdb-tools# cd ...
- ReactiveX 学习笔记(26)使用 RxJS + React.js 调用 REST API
JSON : Placeholder JSON : Placeholder (https://jsonplaceholder.typicode.com/) 是一个用于测试的 REST API 网站. ...
- zabbix添加自定义监控项目
在zabbix里添加一个自定义监控项目,简单做个笔记,怕忘了 首先需要定义 zabbix_agentd.conf 中的 UnsafeUserParameters 修改为 UnsafeUserPara ...
- [Docker] 写 Dockerfile 的最佳实践理论
指导方针 创建短暂的容器 意思是 container 可以停止和销毁,接着以最小化启动和配置进行重新构建和替换. 理解构建的上下文 使用 docker build ,当前工作环境称 ...
- 本地jar包添加至Maven仓库
Maven命令将本地的jar包方放到maven仓库中 //自定义本地的jar包在pom文件的参数 <dependency> <groupId>com.eee</group ...