一、写在前面 上一篇文章 我们介绍了性能监控的一些命令,包括 jmap (生成堆存储快照)和 jstack(生成线程快照),事实上,在没有一些监控工具之前,我们用的最多的也是这两个命令来进行虚拟机性能的监控调优。但是这两个命令都有自己不足的地方: 使用 jmap 命令,从 Heap ...
BTrace 是什么 BTrace 是一个动态安全的 Java 追踪工具,它通过向运行中的 Java 程序植入字节码文件,来对运行中的 Java 程序热更新,方便的获取程序运行时的数据信息,并且,保证自己的消耗特别小,大部分情况下不会影响 Java 程序的性能。 BTrace 能干什么 相信每一位开发都或多或少的干过这档子事:为了解决线上的一个 bug,不得不在代码中打印下入参 出参数据,然后再重 ...
2020-04-11 15:54 0 596 推荐指数:
一、写在前面 上一篇文章 我们介绍了性能监控的一些命令,包括 jmap (生成堆存储快照)和 jstack(生成线程快照),事实上,在没有一些监控工具之前,我们用的最多的也是这两个命令来进行虚拟机性能的监控调优。但是这两个命令都有自己不足的地方: 使用 jmap 命令,从 Heap ...
什么是Java虚拟机? Java虚拟机,从字面上来看,像是某种机器,但Java虚拟机之所以被称之为“虚拟”的,是因为它是由一个规范来定义的抽象计算机,所以在我们说Java虚拟机的时候,可能指的是如下三种不同的东西: 抽象规范 一个具体的实现 一个运行中 ...
我们都知道在 Windows 系统上一个软件包装包是 exe 后缀的,而这个软件包在苹果的 Mac OSX 系统上是无法安装的。类似地,Mac OSX 系统上软件安装包则是 dmg 后缀,同样无法在 ...
虚拟机和故障处理的工具。这些工具被Sun公司作为礼物附赠给JDK的使用者。如下图: 可以看到这 ...
1. 对象的创建 1. 遇到 new 指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,执行相应的类加载。 ...
1. 垃圾回收机制 Stop-the-World: JVM由于要执行GC而停止了应用程序的执行称之为Stop-the-World,该情形会在任何一种GC算法中发生。当Stop-the-world发生时,除了GC所需的线程以外,所有线程都处于等待状态直到GC任务完成。事实上,GC优化 ...
跟许多人一样,我一开始接触 Java 虚拟机只是因为面试需要用到,所以硬着头皮看看。所以很多人对于为什么要学虚拟机这个问题,他们的答案都是:因为面试。但我经过了几年的学习和实战,我发现其实学习虚拟机并不仅仅在于面试,而在于更深入地理解 Java 这门语言,以及为未来排查线上问题打下基础。 先聊 ...
说起 Java 虚拟机,许多人就会将其与 HotSpot 虚拟机等同看待。但实际上 Java 虚拟机除了 HotSpot 之外,还有 Sun Classic VM、Exact VM、BEA JRocketit、IBM J9 等等。今天我们就来简单回顾下 Java 虚拟机的发展历史。 虚拟机始祖 ...