目录 一. 背景 二. 内存泄露及原因 三. 常见堆内内存泄露的原因 四. 避免内存泄露的一些事项 五. 常见发生OOM的日志 六. 定位&解决堆内内存泄露引起的OOM 七....
目录 一. 背景 二. 内存泄露及原因 三. 常见堆内内存泄露的原因 四. 避免内存泄露的一些事项 五. 常见发生OOM的日志 六. 定位&解决堆内内存泄露引起的OOM 七....
目录 一、背景 二、垃圾收集器比较 三、常用JVM参数 四、垃圾收集器对比 五、关系图 一、背景 前面的章节单独说了下CMS和G1,而更早的收集器如并没有被淘汰,当C...
目录 一、背景 二、G1垃圾收集器特性 三、G1执行步骤 四、G1基本参数 四、G1日志解释 六、基本原理 七、G1优化 八、元空间扩容引起MIXGC实践 一、背景 G1垃...
目录 一.背景 二.CMS垃圾收集器特性 三.CMS执行步骤 四.CMS日志解释(JDK1.8): 五.CMS参数&实践 六.实践触发CMS 七.CMS详细处理流程 八.优化...
一.背景 了解JVM,可以帮助开发人员解决OOM、GC慢、性能优化等问题,同时对JVM设计思想的学习。 二.JVM虚拟机规范内存模型 三.常用查看内存使用 1.查看...
一.背景 数据库为了实现读写并行,也就是说某一行数据在修改的时候会阻塞其他线程修改但不会阻塞读,其他线程还可以读,因为大部分程序都是读多于写,从而大大提升并发性能,使用M...
一.背景 上篇分析了加锁的场景,这一节可以借助对加锁细节的了解来分析程序中出现的死锁。以及避免死锁。本节通过理论结合实践来分析死锁。 二.死锁 死锁是指两个或两个以上的事...
一.背景 通过上节分析锁的基本概念,我们知道锁的模式有: 行级别的:(排他行锁)X、(共享行锁)S。 在加行锁之前需要先对库表页加意向锁:(意向排他锁)IX、(意向共享锁...
一.背景 了解锁机制能让我们开发更加高效的程序,最小化锁带来的性能开销。 二.锁概念 锁是存储引擎为了实现共享资源并发访问的一种管理机制来保证数据的一致性和完整性。 ...
一.背景 根据第一节索引的原理分析,常见一些优化建议不走索引的原因。 通过这些案例的分析,我们可以做到自己识别是否走索引。 二.分析常见不走索引的写法 1>. 查询条...
目录 一.背景 二.mysql索引的数据结构 三.B+树 四.选择索引 一.背景 我们知道索引既可以帮助查询提升效率,但在DML操作中会有一定的影响,所以我们什么时候该建索引...
目录 一.背景 二.正则表达式回溯 三.解决方案 一.背景 前面讲解了如果排查应用程序代码引起的cpu飙高。 对于死循环、某一行代码执行次数多引起cpu高,这一类都可以定位。...
目录 一.定位CPU高代码位置 二.总结 一.定位CPU高代码位置 模拟占用CPU 二.总结 对于用户态的cpu飙高相对比较简单,比较常见的就是死循环,正则表达式回溯导致的C...
目录 一.背景 二.用户态和系统态(内核态) 三.CPU使用率 四.占用CPU分析 一.背景 在篇是在《技术-CPU飙高分析和排查(一)-CPU基础》之上。 本篇主要了解用户...