《Java虚拟机JVM故障诊断与性能优化》读书笔记(未完待续)
前言:
对于JVM学习用处的理解:我们程序员写的代码,虽说是放在服务器(linux)系统上的。但是很多时候,受JVM的影响,其实程序并没有发挥出服务器的最大性能。这时候,JVM就成为了瓶颈了。有瓶颈就要想办法优化解决,这和程序内部的优化一样。区别是,程序的优化一版是重构代码,而JVM的优化,往往是通过修改配置参数。
1.虚拟机基本结构:
1)方法区(永久区、元空间):类加载子系统(加载class信息)、常量
2)java堆:java对象实例(所有线程共享)。【存数据】
3)直接内存:NIO库允许使用系统的内存空间(不受Xmx指定的最大堆大小)
4)垃圾回收系统:GC
5)java栈:局部变量、方法参数,在线程创建时创建,每个线程一个。【存方法、线程相关的数据】
5.1)通过-Xss指定最大栈空间
5.2)是先入后出的堆栈结构
5.3)超过请求的栈的深度,会抛出StackOverflowError的栈溢出错误
6)本地方法栈:与java栈类似,不同的是一个调用JAVA方法,一个调用本地方法(一般由C语言写)
7)PC寄存器:每个线程的私有空间,如果是JAVA方法,则会记录当前指令。如果是本地方法则是undifined。
8)执行引擎:负责执行字节码。(现代虚拟机为了提高效率,会使用即时编译技术,编译成机器码后执行)
2.对象去哪儿:Java堆辨清
1)java堆,分新生代(eden、s0、s1),老年代。
2)大部分情况,对象首先在eden区,然后一次新生代GC后,会进入s0或s1。之后,每次新生代GC后,它的年龄加一。达到一定条件后,被认为是老年代对象,进入老年代

《Java虚拟机JVM故障诊断与性能优化》读书笔记(未完待续)的更多相关文章
- 实战JAVA虚拟机 JVM故障诊断与性能优化 pdf
需要的小伙伴拿走,百度云盘:http://pan.baidu.com/s/1nvm6RHZ
- CSS写作建议和性能优化总结(未完待续)
这里是我从网上的一篇文章看过来的,这里先做一点小结,之后再补充. 1.CSS渲染规则 今天在微博的一篇文章上看到的,之前我都以为渲染是从左往右渲染.发现我的想法是错的.之所以采用从右往左的渲染规则,是 ...
- Java程序性能优化读书笔记(一):Java性能调优概述
程序性能的主要表现点: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在内存泄漏 启动时间:程序从运行到可以正常处理业务需要花费多少时间 负载承 ...
- Java并发笔记-未完待续待详解
为什么需要并行? – 业务要求 – 性能 并行计算还出于业务模型的需要 – 并不是为了提高系统性能,而是确实在业务上需要多个执行单元. – 比如HTTP服务器,为每一个Socket连接新建一个处理线程 ...
- java程序性能优化读书笔记-垃圾回收
衡量系统性能的点 执行速度:即响应时间 内存分配:内存分配是否合理,是否过多消耗内存或者存在内存泄露 启动时间:程序从启动到正常处理业务需要的时间 负载承受能力:当系统压力上升,系统执行速度和响应时间 ...
- Java程序性能优化-读书笔记(一) 单例模式
单例模式: 目的: 确保系统中一个类只产生一个实例. 好处: 1.对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销. 2.由于new操作的次数减少, ...
- java性能优化读书笔记(1)
1.采用clone()方式创建对象 java语言里面的所有类都默认继承自java.lang.Object,此类里有一个clone()方法: 拷贝对象返回的是一个新的对象,而不是一个对象的引用地址: 拷 ...
- Flink原理、实战与性能优化读书笔记
第一章 ApacheFlink介绍 一.Flink优势 1. 目前唯一同时支持高吞吐.低延迟.高性能的分布式流式数据处理框架 2. 支持事件事件概念 3. 支持有状态计算,保持了事件原本产生的时序性, ...
- JavaScript设计模式:读书笔记(未完)
该篇随我读书的进度持续更新阅读书目:<JavaScript设计模式> 2016/3/30 2016/3/31 2016/4/8 2016/3/30: 模式是一种可复用的解决方案,可用于解决 ...
随机推荐
- Oracle学习笔记(五)
如何查询硬解析问题: --捕获出需要使用绑定变量的SQL drop table t_bind_sql purge; create table t_bind_sql as select sql_text ...
- kafka Authentication using SASL/Kerberos
Authentication using SASL/Kerberos Prerequisites KerberosIf your organization is already using a Ker ...
- TServerSocket组件
主要作为服务器端的套接字管理器使用.它封装了服务器端的套接字.在打开套接字后,服务器端就处于监听状态,在接收到其它机器的连接请求后,与客户端建立连接,创建一个新的套接字,用于和客户端互传数据,此时TS ...
- HeRaNO's NOIP CSP Round Day 2 T3 ginkgo
睡醒后我第一眼:这不主席树裸题吗? 先统计dfs序,把树上问题转化为区间问题 区间大于等于某个数的个数...主席树模板? #include<bits/stdc++.h> #define r ...
- 【JVM学习笔记二】垃圾收集器与内存分配策略
1. 概述 1) GC的历史比Java久远 2) GC需要完成的三件事: | 哪些内存需要回收 | 什么时候回收 | 如何回收 3) Java内存运行时区域各个部分: | Java虚拟机栈.计数器.本 ...
- can解析
- python中的exec()函数和eval()函数
exec()函数 exec函数用于执行存储在字符串中的python语句 >>> exec("x=1") >>> x 但有时候,直接这样执行可能会 ...
- Android:异步处理之Handler+Thread的应用
担心原文消失,做此记录,感谢 https://www.cnblogs.com/net168/p/4075126.html 前言 很久很久以前就听说了,每一个android的应用程序都会分别运行在一个独 ...
- SCP免密传输和SSH登录流程详解
SCP免密传输和SSH登录协议详解 在linux下开发时,经常需要登录到其他的设备上,例如虚拟机内ubuntu.树莓派等等,经常涉及到传输文件的操作,传输文件有很多中方法,如物理磁盘拷贝,基于网络的s ...
- Python中取整的方法floor,ceil,round
地板函数:math.floor(4.9)=4 天花板函数: math.ceil(4.1)=5 四舍五入: round(4.5)=4 round(4.6)=5