JVM 中最重要的一部分就是堆空间了,基本上大多数的线上 JVM 问题都是因为堆空间造成的 OutOfMemoryError。因此掌握 JVM 关于堆空间的参数配置对于排查线上问题非常重要。 tips:本文所有配置,如无特别说明,均基于JDK1.8。 堆配置 我们使用 -Xms 设置堆的初始 ...
说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC Garbage Collection 日志。而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数。今天就让我们来学习一下 Java 虚拟机中所有与 GC 日志有关的参数。相信掌握了这些参数之后,对于大家线上打印 GC 日志是有不少帮助的。 为了能够更直观地显示出每个参数的作用,我们将以下面的 Demo 为 ...
2018-12-10 20:16 2 6695 推荐指数:
JVM 中最重要的一部分就是堆空间了,基本上大多数的线上 JVM 问题都是因为堆空间造成的 OutOfMemoryError。因此掌握 JVM 关于堆空间的参数配置对于排查线上问题非常重要。 tips:本文所有配置,如无特别说明,均基于JDK1.8。 堆配置 我们使用 -Xms 设置堆的初始 ...
我们都知道 JVM 在启动的时候会去加载类信息,那么我们怎么得知他加载了哪些类,又卸载了哪些类呢?我们这一节就来介绍四个 JVM 参数,使用它们我们就可以清晰地知道 JVM 的类加载信息。 为了方便演示,我们使用下面的程序作为本次的演示程序。 跟踪类的加载和卸载 -verbose ...
本文转载:milkty的jvm参数 在学习java的jvm内存板块时,最后总会涉及到一些JVM参数。年轻代、老年代、永久代等各项都可以通过JVM参数来设置大小。在实际设置启动参数时,一般只会设置几个,实际参数有上百个,很多都有默认值。 JVM中,上一个版本的默认值 ...
在上一篇中我们介绍的有参数的设置,那我们要了解不同的参数对于程序的影响和对于调优的影响,这个时候我们就需要查看gc日志来看我们设置的参数是否合理,这一章节中我们就来查看gc日志 一、新生代和老年代的比值对性能的影响 Map map = new HashMap<> ...
今天要说的是如何查看 JVM 中已经设置的参数,包括显示参数和隐式参数。 打印显式参数 -XX:+PrintVMOptions 该参数表示程序运行时,打印虚拟机接受到的命令行显式参数。我们用下面的命令运行程序: 输出结果: 可以看到我们设置了+UseSerialGC ...
我们都知道在 Windows 系统上一个软件包装包是 exe 后缀的,而这个软件包在苹果的 Mac OSX 系统上是无法安装的。类似地,Mac OSX 系统上软件安装包则是 dmg 后缀,同样无法在 ...
前面文章中,我们介绍了 Java 虚拟机的内存结构,Java 虚拟机的垃圾回收机制,那么这篇文章我们说说具体执行垃圾回收的垃圾回收器。 总的来说,Java 虚拟机的垃圾回收器可以分为四大类别:串行回 ...
在第 6 讲中我们说到 Java 虚拟机的内存结构,提到了这部分的规范其实是由《Java 虚拟机规范》指定的,每个 Java 虚拟机可能都有不同的实现。其实涉及到 Java 虚拟机的内存,就不得不谈到 Java 虚拟机的垃圾回收机制。因为内存总是有限的,我们需要一个机制来不断地回收废弃的内存 ...