摘要: 一、垃圾回收判断 引用计数法:每次引用+1,解引用-1,引用为0可被回收,解决不了循环引用问题,会造成内存泄漏 可达性分析算法:被根对象直接或间接引用的对象都不能回收 Q:那些对象可以作为GC Root? Memory Analyzer工具可以作为堆内存分析工具,可以找到作为GC Root的对象 抓 阅读全文
posted @ 2021-09-10 14:53 上官兰夏 阅读(100) 评论(0) 推荐(0)
摘要: 1.查看CPU占用率高的进程 top命令查看进程信息 ps -eo pid,pcpu | sort -n -k pid 2.确定高cpu消耗的线程 top -H ps H -eo pid,tid,pcpu | sort -n -k 3 3.查看进程的线程 pstree -p pid 查看线程的相信信 阅读全文
posted @ 2021-09-10 14:45 上官兰夏 阅读(260) 评论(0) 推荐(0)
摘要: 常用参数 -XX:+PrintGCDetails:打印gc日志详细信息 -XX:+PrintGCTimeStamps:打印gc发生时相对jvm启动的时间戳,(后来加入了PrintGCDateStamps,打印gc发生的日期) -Xloggc:设置gc日志的生成位置 -Xms4096M:堆容量初始值 阅读全文
posted @ 2021-09-10 14:45 上官兰夏 阅读(71) 评论(0) 推荐(0)
摘要: JVM内存结构 一、程序计数器 线程私有(指令最终由cpu执行,所以必须线程私有),记录了下一条指令的地址,不会出现内存溢出 二、虚拟机栈 线程运行时需要的一个内存空间,Java虚拟机栈和线程是同时创建的,用于存储栈帧。每个方法在执行时都会创建一个栈帧(Stack Frame),用于存储局部变量表、 阅读全文
posted @ 2021-09-10 14:44 上官兰夏 阅读(80) 评论(0) 推荐(0)