Java虚拟机
文章平均质量分 86
IntelliJzzy
对技术的狂热者!
展开
-
再探JVM虚拟机
JVM参数说明 序号 JVM参数 参数说明 A B C -XX:CMSInitiatingOccupancyFraction=60 设置CMS收集器在老年代空间被使用多少后触发垃圾收集,默认值68...原创 2020-08-05 17:38:01 · 347 阅读 · 0 评论 -
Java锁,偏向锁,轻量级锁,重量级锁原理(转载)
之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的:1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对);2. AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是...转载 2020-05-08 17:07:32 · 236 阅读 · 0 评论 -
一次排查线上线程池数量过高的报警经历
线上jstack查看正常机器和问题机器对比堆栈信息,发现大量的http-nio-1601-exec-线程在等待,查看线上监控发现优惠券接口调用量飙升,中午商家做活动抢券,根据线程名字可以看出是tomcat的线程池被打满了,线上监控显示线程数超过1000,比正常机器线程数超出500左右,对比上图基本确定原因。进一步需要做tomcat线程池调优,应对每周一的高流量请求,甚至需要机器扩容,...原创 2020-01-08 10:41:41 · 3401 阅读 · 0 评论 -
深入理解Java虚拟机重点
一、Java虚拟机内存分区(1)方法区(一般称永久代)1、所有线程共享的区域2、主要存放类信息、常量、静态变量、运行时常量池、即时编译的代码等(2)虚拟机栈1、线程私有的内存区域2、每个方法调用都会创建自己的栈帧(局部变量表,操作数栈,动态链接,方法出口等),都属于该虚拟机栈3、栈帧中的局部变量表内存大小在编译期就完成确定,方法运行期间大小不会改变4、当线程请求栈深度超过阈值,发生...原创 2017-06-22 11:33:57 · 354 阅读 · 0 评论