《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: 模式是一种可复用的解决方案,可用于解决 ...
随机推荐
- Android 权限的一些细节
Android 权限的一些细节 1 哪些app属于system app?为了区分privilege app和system app,这里先说明system app是什么,避免之后的讨论概念混乱. 在Pa ...
- Ubuntu中的两套网络连接管理方式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/haifeng_gu/article/details/78286895 Linux里面有两套管理网络 ...
- 浅谈HTML5的新特性
2014年10月29日,W3C宣布,经过接近8年的艰苦努力,HTML5标准规范终于制定完成. HTML5将会取代1999年制定的HTML 4.01.XHTML 1.0标准,使网络标准达到符合当代的网络 ...
- Android Drawable和Bitmap区别
一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable) ...
- TP5日志打印方法封装
需求:在开发及测试过程中需要打印日志,并且可以将日志内容打印到指定文件,这样方便查看. 过程: 1. 打开think\Log文件,在该文件中添加一个静态方法,代码如下: /** * @param $m ...
- 使用DocumentFormat.OpenXml操作Excel文件.xlsx
1.开始 DocumentFormat.OpenXml是ms官方给一个操作office三大件新版文件格式(.xlsx,.docx,.pptx)的组件:特色是它定义了OpenXml所包含的所有对象(たぶ ...
- 【Linux】在linux上java工具jps jstat jinfo等命令找不到怎么办
一.yum安装方式 1)搜索openjdk-devel相关的安装包 yum search java|grep jdk 2)安装对应的版本 yum install -y java-1.8.0-openj ...
- Windows Server 2008 R2 忘记密码的处理方法
这篇文章主要介绍了Windows Server 2008 R2 忘记密码的处理方法,一般两种方法,一种是软件方法一种是通过系统安装盘实现的,这里久违大家分享一下需要的朋友可以参考下 遗忘Windows ...
- virt-install创建虚拟机并制作成模板
一.使用virt-install创建新的虚拟机 virt--template --ram --vcpu= --virt-type kvm --cdrom=/Data/kvm/iso/CentOS-.i ...
- 团队第四次作业——Alpha1版本发布
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...