文章分类 -  jvm

摘要:背景 线上有个流量比较大的服务,qps日常在2000-3000之间,请求方对耗时要求比较高,响应时间要求在300ms以内,服务上线以后,运行也比较平稳。某天夜里,突然有几千个dubbo请求超时,找了几个请求查看调用链路发现超时的地方各不相同,服务依赖的接口方均表示服务没有异常。 这种情况下,一般就是 阅读全文
posted @ 2022-11-21 17:22 looyee 阅读(256) 评论(0) 推荐(0)
摘要:简要工作中负责的有一个项目是使用iReport+JasperReport实现的一个打印系统。最近这个线上程序经常无响应,重启后恢复正常,但是时不时还是会出现类似的问题。最后发现是JasperReport的一个问题。有个JasperReport的转换任务内存占用特别高,当新对象需要分配内存时就会内存不 阅读全文
posted @ 2021-03-17 13:34 looyee 阅读(580) 评论(0) 推荐(0)
摘要:在线故障排查 转自:https://mp.weixin.qq.com/s/IGRVRhLFZOQL1mRucXCGxA 阅读全文
posted @ 2021-02-10 10:57 looyee 阅读(96) 评论(0) 推荐(1)
摘要:首先简单说下先偏向锁、轻量级锁、重量级锁三者各自的应用场景: 偏向锁:只有一个线程进入临界区; 轻量级锁:多个线程交替进入临界区; 重量级锁:多个线程同时进入临界区。 锁膨胀过程: 上图跟下面这个解析基本相同: 偏向所锁,轻量级锁都是乐观锁,重量级锁是悲观锁。一个对象刚开始实例化的时候,没有任何线程 阅读全文
posted @ 2021-02-03 14:51 looyee 阅读(120) 评论(0) 推荐(0)
摘要:以下主要为重写loadClass()和使用线程上下文类加载器这两种打破双亲委派模型方法的总结,并结合具体实例进行分析。 参考:破坏双亲委派模型 什么地方违反了双亲委派模型 以JDBC为例谈双亲委派模型的破坏 本文转载自:https://blog.csdn.net/cy973071263/articl 阅读全文
posted @ 2020-11-10 16:57 looyee 阅读(9213) 评论(1) 推荐(3)
摘要:1、背景: 1)当Tomcat中部署的两个WEB应用,都有相同的包路径以及类名称,但是业务实现不同。安装JVM的双亲委派机制,可能存在互相覆盖的情况; 所以为了解决以上问题,tomcat提供WebAPP ClassLoader : 加载各自应用下的WEB-INF/class WEB-INF/lib 阅读全文
posted @ 2020-11-10 16:46 looyee 阅读(398) 评论(0) 推荐(0)
摘要:为什么要自定义类加载器 类加载机制:http://www.cnblogs.com/xrq730/p/4844915.html 类加载器:http://www.cnblogs.com/xrq730/p/4845144.html 这两篇文章已经详细讲解了类加载机制和类加载器,还剩最后一个问题没有讲解,就 阅读全文
posted @ 2020-09-04 15:32 looyee 阅读(228) 评论(0) 推荐(0)
摘要:在学习Java的过程中,很多喜欢说new出来的对象分配一定在对上; 其实不能这么说,只能说大部分对象分配是在对上。通过对象的分配过 程分析,除了堆以外,还有两个地方可以存放对象: 栈和TLAB(Thread Local Allocation Buffer)。 Java对象分配流程图: 如果开启栈上分 阅读全文
posted @ 2020-09-04 15:08 looyee 阅读(1390) 评论(1) 推荐(1)
摘要:第一步:jps得到进程ID 第二步:找出该进程内最耗费CPU的线程,可以使用ps -Lfp pid或者ps -mp pid -o THREAD, tid, time或者top -Hp pid,我这里用第三个,输出如下:(windows使用ProcessExplorer找到进程id,右键propert 阅读全文
posted @ 2019-06-28 11:10 looyee 阅读(531) 评论(0) 推荐(0)
摘要:本文转载自: https://www.cnblogs.com/chinawjb/p/5339172.html 最近在读《深入理解Java虚拟机》,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存? 在网上搜到了一篇博客讲的非常好: 阅读全文
posted @ 2019-06-28 09:27 looyee 阅读(267) 评论(0) 推荐(0)
摘要:本文转载自: http://www.51testing.com/html/38/n-3724238.html 前言 现实企业级Java项目中,有时候会碰到下面这些问题: ●OutOfMemoryError,内存不足 ●内存泄露 ●线程死锁 ●锁争用(Lock Contention) ●Java进程消 阅读全文
posted @ 2019-06-21 15:55 looyee 阅读(5367) 评论(0) 推荐(0)
摘要:Yes, it is as you guessed. The JVM/JRE uses Java bytecode as its instruction set and each JVM needs to be compiled on and be runnable on the native/lo 阅读全文
posted @ 2019-06-14 16:48 looyee 阅读(520) 评论(0) 推荐(0)
摘要:本文转载自:https://www.jianshu.com/p/353c26c744df 基本概念 定义 双亲委派模型要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器。 双亲委派模型的工作过程是: 如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求 阅读全文
posted @ 2019-05-17 16:03 looyee 阅读(702) 评论(0) 推荐(0)