Fork me on GitHub

随笔分类 -  JVM调优

jvm调优以及jvm简介
摘要:下载 地址: https://eclipse.dev/mat/downloads.php 注意: 1.12.0 Release需要JDK11 参数配置 在配置的部分,我们主要配置的是ParseHeapDump.sh脚本中的内存参数。 在脚本的最后一行的最后面,加上如下的参数 -vmargs -Xmx 阅读全文
posted @ 2023-11-29 16:56 晨度 阅读(683) 评论(0) 推荐(0) 编辑
摘要:简介 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率 CPU飙升定位 CPU飙升问题一般就是几个常用命令 阅读全文
posted @ 2023-11-24 18:01 晨度 阅读(45) 评论(0) 推荐(0) 编辑
摘要:常用配置参数 jar包启动配置命令 java -Xmx8g -Xms8g -XX:+UseG1GC -jar /home/pgcp/pgcp-0.0.1-SNAPSHOT.jar tomcat启动配置参数 在/bin/catalina.sh中/cygwin=false前加入下面一句 JAVA_OPT 阅读全文
posted @ 2023-02-15 18:04 晨度 阅读(196) 评论(0) 推荐(0) 编辑
摘要:###数据结构 java对象和数组是存放在堆中的,那么这些instance的数据结构是什么呢? 对象头 第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。 第二部分是klass,类型指针,虚拟机通 阅读全文
posted @ 2021-10-17 14:19 晨度 阅读(786) 评论(0) 推荐(0) 编辑
摘要:###简介 字符串在不同的JDK版本中,存放的位置不同,创建方式不同,存放的位置也不同。 ###存放位置 JDK1.7以下,无论何种方法创建String对象,位置都位于方法区。 JDK1.8及1.8以上,new String("Hello")创建位于堆中,String s3="world"创建则位于 阅读全文
posted @ 2020-06-07 17:51 晨度 阅读(638) 评论(0) 推荐(0) 编辑
摘要:###常用JVM查看信息命令 top 观察内存使用情况、CPU占用率, top -Hp 进程ID 观察进程中的线程,哪个线程CPU和内存占比高, jstack 进程ID 定位线程状况,重点关注:WAITING BLOCKED。 ###常用工具使用 jconsole 远程连接 JDK自带界面 线上不使 阅读全文
posted @ 2020-06-06 22:40 晨度 阅读(753) 评论(0) 推荐(0) 编辑
摘要:###名词解释 动态编译(dynamic compilation) "在运行时进行编译",与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static compilation)。 JIT编译(just-in-time compilation) 狭 阅读全文
posted @ 2020-05-12 12:05 晨度 阅读(376) 评论(0) 推荐(0) 编辑
摘要:###简介 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟 阅读全文
posted @ 2020-05-05 22:33 晨度 阅读(649) 评论(0) 推荐(0) 编辑
摘要:###内存溢出和内存泄漏 内存溢出(Out Of Memory) 就是申请内存时,JVM没有足够的内存空间。通俗说法就是去蹲坑发现坑位满了。 内存泄露 (Memory Leak) 就是申请了内存,但是没有释放,导致内存空间浪费。通俗说法就是有人占着茅坑不拉屎。 ###垃圾定义 没有任何引用指向的一个 阅读全文
posted @ 2020-05-04 01:26 晨度 阅读(1006) 评论(0) 推荐(0) 编辑
摘要:###类加载过程 加载时机 使用new实例化对象时,读取和设置类的静态变量、静态非字面值常量(静态字面值常量除外)时,调用静态方法时。 对内进行反射调用时。 当初始化一个类时,如果父类没有进行初始化,需要先初始化父类。 启动程序所使用的main方法所在类。 当使用1.7的动态语音支持时。 加载阶段 阅读全文
posted @ 2020-05-03 21:14 晨度 阅读(2221) 评论(0) 推荐(0) 编辑
摘要:###G1(Garbage-First) G1是一种服务端应用使用的垃圾收集器,目标是用在多核、大内存的机器上,它在大多数情况下可以实现指定的GC暂停时间,同时还能保持较高的吞吐量。 特点 压缩空闲空间不会延长GC的暂停时间。 内存模型 每个分区都可能是年轻代也可能是老年代,但是在同一时刻只能属于某 阅读全文
posted @ 2020-05-02 12:14 晨度 阅读(2071) 评论(0) 推荐(0) 编辑
摘要:###简介 CPU为了提高指令执行效率,会在一条指令执行过程中(比去内存读数据(慢100倍)),去同时执行另一条指令,前提是,两条指令没有依赖关系。 ###CPU保证不乱序 MESI--CPU缓存一致性协议(Inter的CPU) ####概念 Modified(被修改) 该缓存行只被缓存在该CPU的 阅读全文
posted @ 2020-05-01 11:12 晨度 阅读(164) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示