随笔分类 - JVM
摘要:导致内存溢出的原因 通常在三个地方会发生内存溢出: metaspace空间内存溢出 栈内存溢出 堆内存溢出 metaspace空间内存溢出 metaspace默认大小为 -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M metaspace内存溢出的原因
阅读全文
摘要:JVM | 内存溢出和解决方案1. 导致内存溢出的原因1-1. metaspace空间内存溢出1-1-1. metaspace内存溢出的原因1-1-2. 代码模拟metaspace内存溢出1-2. 栈内存溢出1-2-1. 栈内存大小分配1-2-2. 代码模拟栈内存溢出1-3. 堆内存溢出1-3-1. 什么时候会发生堆内存的溢出1-3-2. 代码模拟堆内存溢出2. 生产环境真实的OOM问题2-1....
阅读全文
摘要:Java诊断工具 | Arthas1. Arthas是什么2. Arthas可以解决的问题2-1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?2-2. 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?2-3. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?2-4. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,...
阅读全文
摘要:JVM | 性能调优一、性能调优工具1. jps2. jstack(查看线程)3. jmap(查看内存)4. jstat(性能分析)5. jconsole6. jvisualvm7. Arthas二、参数配置1. 生产环境打印GC停顿时间2. 生产环境禁止RMI(remote method invoke)调用System.gc();3. 生产环境真实配置案例 一、性能调优工具 1. jpsj...
阅读全文
摘要:JVM | 垃圾回收1. Java垃圾回收的概念1-1. 如何判断哪些是垃圾对象,引用计数法,根搜索算法1-2. 哪些是GC Roots1-3. 方法区(永久代)会发生GC吗,会回收哪些对象?1-4. 什么时候会发生minor GC和full GC2. 垃圾回收器3. 安全点和安全区域 1. Java垃圾回收的概念 1-1. 如何判断哪些是垃圾对象,引用计数法,根搜索算法 1-2. 哪些是...
阅读全文
摘要:学习笔记 | JVM一、深入理解JVM1. 类加载器2. 字节码3. 垃圾回收器 一、深入理解JVM 1. 类加载器在java中,类型的加载,连接与初始化过程都是在程序运行期间完成的类的生命周期加载:查找并加载类的二进制数据连接:-验证:确保被加载的类的正确性-准备:为类的静态变量分配内存,并将其初始化为默认值-解析:把类中的符号引用转换为直接引用初始化:为类的静态变量赋予正确的初始值使用卸...
阅读全文

浙公网安备 33010602011771号