jvm
戒不掉旳人
不仅仅于代码
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
简单说说JAVA内存泄漏
大量对象占用JVM内存,并且垃圾回收无法回收,这就出现了内存泄漏打个比方一般电商架构可能会使用多级缓存架构,就是redis加上JVM级缓存,有的可能为了图方便对于JVM级缓存就简单使用一个hashmap,于是不断往里面放缓存数据,但是很少考虑这个map的容量问题,结果这个缓存map越来越大,一直占用着老年代的很多空间,时间长了就会导致fullgc非常频繁,这就是一种内存泄漏,对于一些老旧数据没有及时清理导致一直占用着宝贵的内存资源,时间长了除了导致full gc,还有可能导致OOM。这种情况完全可以考虑原创 2022-02-12 18:38:45 · 862 阅读 · 0 评论 -
系统频繁Full GC,导致系统卡顿
本人自己在云服务器上部署了个应用,都要忘了这么回事了,突然打开发现特别卡顿,数据量并不多,内存也是够用的,访问量也并不高,就时快时慢的问题以下是机器配置以及统计到的数据机器配置:2核4GJVM内存大小:2G系统运行时间:7天期间发生的FullGC次数和耗时:500多次,200多秒期间发生的YoungGC次数和耗时:1万多次,500多秒大致算下来每天会发生70多次FullGC,平均每小时3次,每次FullGC在400毫秒左右;每天会发生1000多次YoungGC,每分钟会发生1原创 2022-02-12 18:33:29 · 1782 阅读 · 0 评论 -
JVM调优工具
Jmap此命令可以用来查看内存信息,实例个数以及占用内存大小dump堆内存信息jvisualvm命令工具导入该dump出来的文件进行分析检测死锁可以远程连接,需要启动时加-Dcom.sun.management.jmxremote.port 为远程机器的JMX端口Jstack查死锁也可以用jvisualvm检测死锁Jinfo查看正在运行的Java应用程序的扩展参数Jstatjstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:j原创 2022-02-12 18:12:48 · 142 阅读 · 0 评论 -
垃圾收集底层算法实现
三色标记在并发标记的过程中,因为标记期间应用线程还在继续跑,对象间的引用可能发生变化,多标和漏标的情况就有可能发生。所以标记的时候分为三种颜色,黑色,白色,灰色黑色:表示对象已经被垃圾收集器访问过,并且它的所有引用也都扫描过,是安全存活的对象,如果有其他对象引用了黑色,那么无需重新扫描改对象灰色:表示对象已经被垃圾收集器访问过,但这个对象上至少存在一个引用还没有被扫描过白色:表示对象尚未被垃圾收集器访问过。所以,最开始的时候,所有的对象都是白色,如果扫描一遍以后,还是白色,那么表示这个对..原创 2022-02-12 17:31:52 · 325 阅读 · 0 评论 -
JVM垃圾收集器
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。JVM无非就是按照上篇文章的算法去做实现文章在这里优快云https://mp.youkuaiyun.com/mp_blog/creation/editor/122898005下面讲述本人对JVM实现的集中垃圾收集器的个人理解,如有其他见解,欢迎讨论1:Serial收集器-XX:+UseSerialGC-XX:+UseSerialOldGC新生代采用复制算法,老年代采用标记-整理算法单线程收集器,gc时会暂停应用所有原创 2022-02-12 16:54:00 · 401 阅读 · 0 评论 -
jvm垃圾回收的几种算法
JVM垃圾回收算法原创 2022-02-12 16:14:22 · 335 阅读 · 0 评论
分享