zl程序教程

JVM 源码分析

  • 蚂蚁金服寒泉子:JVM源码分析之临门一脚的OutOfMemoryError完全解读

    蚂蚁金服寒泉子:JVM源码分析之临门一脚的OutOfMemoryError完全解读

    原文出自【听云技术博客】:http://blog.tingyun.com/web/article/detail/1210 概述 OutOfMemoryError,说的是java.lang.OutOfMemoryError,是JDK里自带的异常,顾名思义,说的就是内存溢出,当我们的系统内存严重不足的时候就会抛出这个异常(PS:注意这是一个Error,不是一个Exception,所以当我们要cat

    日期 2023-06-12 10:48:40     
  • JVM源码分析之JDK8下的僵尸(无法回收)类加载器

    JVM源码分析之JDK8下的僵尸(无法回收)类加载器

    这篇文章基于最近在排查的一个问题,花了我们团队不少时间来排查这个问题,现象是有一些类加载器是作为key放到WeakHashMap里的,但是经历过多次full gc之后,依然坚挺地存在内存里,但是从代码上来说这些类加载器是应该被回收的,因为没有任何强引用可以到达这些类加载器了,于是我们做了内存dump,分析了下内存,发现除了一个WeakHashMap外并没有别的GC ROOT途径达到这些类加载器了,

    日期 2023-06-12 10:48:40     
  • JVM源码分析之Jstat工具原理完全解读

    JVM源码分析之Jstat工具原理完全解读

    jstat是hotspot自带的工具,和java一样也位于JAVA_HOME/bin下面,我们通过该工具可以实时了解当前进程的gc,compiler,class,memory等相关的情况,具体我们可以通过jstat -options来看我们到底支持哪些类型的数据,譬如JDK8下的结果是: -class -compiler -gccapacity -gccause -gcmetacapac

    日期 2023-06-12 10:48:40     
  • JVM源码分析之不可控的堆外内存

    JVM源码分析之不可控的堆外内存

    之前写过篇文章,关于堆外内存的,JVM源码分析之堆外内存完全解读,里面重点讲了DirectByteBuffer的原理,但是今天碰到一个比较奇怪的问题,在设置了-XX:MaxDirectMemorySize=1G的前提下,然后统计所有DirectByteBuffer对象后面占用的内存达到了7G,远远超出阈值,这个问题很诡异,于是好好查了下原因,虽然最终发现是我们统计的问题,但是期间发现的其他一些问题

    日期 2023-06-12 10:48:40     
  • JVMTM Tool Interface:JVM源码分析之javaagent原理完全解读

    JVMTM Tool Interface:JVM源码分析之javaagent原理完全解读

    JVMTM Tool Interface:JVM源码分析之javaagent原理完全解读 概述 本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员,而且agent都是用Java编写的,不需要太多的C/C++编程基础,不过这篇文章里也会讲到JVMTIAgent(C实现的),因为javaagent的运行还是依赖于一个特殊的

    日期 2023-06-12 10:48:40     
  • JVM源码分析之javaagent原理完全解读

    JVM源码分析之javaagent原理完全解读

    概述 本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员,而且agent都是用Java编写的,不需要太多的C/C++编程基础,不过这篇文章里也会讲到JVMTIAgent(C实现的),因为javaagent的运行还是依赖于一个特殊的JVMTIAgent。 对于javaagent,或许大家都听过,甚至使用过,常见的用法大致如下: java -javaagent:myagent

    日期 2023-06-12 10:48:40     
  • JVM源码分析之一个Java进程究竟能创建多少线程

    JVM源码分析之一个Java进程究竟能创建多少线程

    JVM源码分析之一个Java进程究竟能创建多少线程 原创: 寒泉子 你假笨 2016-12-06 概述 虽然这篇文章的标题打着JVM源码分析的旗号,不过本文不仅仅从JVM源码角度来分析,更多的来自于Linux Kernel的源码分析,今天要说的是JVM里比较常见的一个问题 这个问题可能有几种表述 一个Java进程到底能创建多少线程? 到底有哪些因素决定了

    日期 2023-06-12 10:48:40     
  • JVM源码分析之javaagent原理完全解读--转

    JVM源码分析之javaagent原理完全解读--转

    原文地址:http://www.infoq.com/cn/articles/javaagent-illustrated 概述 本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员,而且agent都是用Java编写的,不需要太多的C/C++编程基础,不过这篇文章里也会讲到JVMTIAgent(C实现的),因为javaagent的运行还是依赖于一个特殊的JVMTIAgent。

    日期 2023-06-12 10:48:40