jvm笔记
JVM学习笔记
重露成涓滴
coding…
展开
-
tomcat7 session共享集群导致的FullGC问题
周末在家收到邮件,****服务器CPU使用率81%java version "1.8.0_11"处理过程使用top查看进程的CPU使用情况[root logs]# toptop - 14:34:51 up 513 days, 4:42, 3 users, load average: 3.27, 2.81, 2.34Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombieCpu(s): 59.8%us,.原创 2020-08-04 10:15:58 · 384 阅读 · 0 评论 -
HotSpot虚拟机中对象的内存布局
对象的大小以及内存布局与虚拟机的实现和设置有很大关系。在HotSpot虚拟机里,对象在堆内存中的存储布局可以划为三个部分:对象头、实例数据、对齐填充1.对象头2.实例数据3.对齐填充...原创 2020-05-08 15:17:46 · 591 阅读 · 2 评论 -
JAVA进程占用CPU200%-300%的问题处理过程
故事背景今天后台管理系统出现cpu 200%-300%,导致总CPU使用忽高忽低,系统访问速度忽快忽慢。后台管理系统使用ssm框架,用户量小,所以排除高并发的情况。java version "1.8.0_11"1.使用top查看进程的CPU使用情况[root logs]# toptop - 14:34:51 up 513 days, 4:42, 3 users, load ave...原创 2020-03-18 17:55:10 · 3953 阅读 · 0 评论 -
nohup java -jar 启动springboot项目时JVM参数调优
背景:java version "1.8.0_11"项目用springboot写的,以往启动都没有设置JVM参数,都是默认的。今天遇到频繁FGC的情况,导致服务器CPU占用超级高,而且FGC并不能有效的回收对象内存。1.ps查询对应进程:[root@10-9-166-14 server]# ps aux|grep additionroot 22670 43.5 5.8 473...原创 2020-03-29 00:02:57 · 11230 阅读 · 0 评论 -
关于java对象内存布局的面试题
问题:1.解释一下对象的创建过程?2.对象在内存中的存储布局?Object o = new Object()在内存中占用多少字符?3.对象头具体包括什么?4.对象怎么定位?1.解释一下对象的创建过程?T t = new T();首先创建对象的时候,会先检查对象的class类有没有加载过,如果没加载过就执行类加载过程class loading(加载)通过一个类的全限定名来获取...原创 2020-02-16 17:15:47 · 447 阅读 · 3 评论 -
Class加载-初始化-Linking-Initializing
Class加载-初始化-Linking-Initializing类被加载到虚拟机内存中开始,到卸载出内存为止,整个生命周期包括7个阶段:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Usting)、卸载(Unloading)LinkingVerification...原创 2020-02-04 17:33:08 · 333 阅读 · 0 评论 -
JVM入门
JVM入门javac是java语言编程编译器.负责将java文件编译成class文件.class文件可被JVM执行。JVM是跨语言的平台(一种规范)和java语言没有任何关系,只与class文件有关class文件是一种特定的二进制文件格式,class文件中包含了JVM指令集和符号表以及若干其他的辅助信息。class文件被ClassLoader装载到内存中,同时一些通用的java类库相关的...原创 2020-01-31 16:33:03 · 153 阅读 · 0 评论 -
Class加载-初始化-Loading
详解Class加载-初始化-Loading类被加载到虚拟机内存中开始,到卸载出内存为止,整个生命周期包括7个阶段:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Usting)、卸载(Unloading)加载Loading通过一个类的全限定名来获取类的二进制字节流并未...原创 2020-02-02 23:39:09 · 401 阅读 · 0 评论 -
Java内存模型JMM(java memory model)1
问题高并发情况下Java内存模型是怎样提供支持的?new出一个对象后,它在内存中是怎样布局的?硬件层的并发优化基础知识硬件数据一致性老的CPU使用总线锁来实现。总线锁在多CPU的情况下效率低,所以发展出了缓存一致性协议,协议非常多,intel用MESI协议(【并发编程】MESI–CPU缓存一致性协议),缓存锁的效率会比总线锁快但是在一些问题中无法解决时还是需要总线锁来保证数据一致性。...原创 2020-02-04 17:58:40 · 234 阅读 · 0 评论