![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
王珂_wangke
开开心心搬砖, 高高兴兴挣钱
展开
-
从docker 中抓取jvm heap 信息, 并且分析
1, 查看JVM进程 # jps ----------------------------- 11921 WrapperSimpleApp 4082 Jps 9768 QuorumPeerMain 10363 Bootstrap 直接使用 jsp 命令, 会发现, 在top 命令中 很多的java 进程并不存在, #top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 20884 roo原创 2020-10-30 09:50:46 · 972 阅读 · 0 评论 -
进阶学习(4.3) JVM 垃圾回收算法
1, 引用计数法 Object a = new Object(), 引用计数为0 Object b = a; 计数 +1 a = null 计数为0, 对象将被回收 b 也是垃圾对象 引用计数法有很大的缺点, 无法解决循环引用, a = c ; b = a; c = b; java 中的对象引用是非常频繁的, 会操作频繁的计数, 消耗性能 2, 标记清除法 必须先知道GC Root 是什么, 可以参考我写的另一篇博客https://blog.csdn.net/weix...原创 2020-09-08 09:39:29 · 165 阅读 · 0 评论 -
进阶学习(4.4) JVM GC Root 判定, 垃圾的判定
要先知道标记清除法, 必须先知道什么是GCRoots,根节点, 常见有 类静态字段 常量 静态代码块 第一栈变量, 网上没有案例说明, 都是复制粘贴的也没说清楚什么是Root 虚拟机栈 1, 先产生一个垃圾对象 这里解释第一栈变量, 理解为就是main 方法中, 中的变量, public static void main(String[] args) { // Root Var User userA = new User(); userA.原创 2020-09-07 22:23:29 · 414 阅读 · 0 评论 -
进阶学习(4.2) JVM 常用配置参数, GC 参数
-XX:+PrintGC 打印GC执行信息 -XX:+PrintGCDetails 打印堆使用信息 PSYoungGen 新生代 eden 伊甸区 from 幸存区 to 幸存区 ParOldGen 老年代 Metaspace 元空间, 就是永久代, 1,8 以后使用的本地内存 -Xloggc:log/gc.log 使用外部文件记录CG -XX:+TraceClassLoading 记录JVM加载的类 -Xmx20m 配置堆最大大小...原创 2020-09-07 20:50:27 · 159 阅读 · 0 评论 -
进阶学习(4.1) JVM结构和原理
1, Java 文件是怎么运行的 编译java 成 class文件 执行带有主方法的class文件 找到jvm.cfg, jvm配置文件, 里面配置了JVM.DLL的C++, JVM实现 类加载器开始加载类进入JVM 找到主类然后运行原创 2020-09-06 19:50:31 · 222 阅读 · 0 评论