GC垃圾收集器&JVM调优汇总(二)

简介: 最近朋友小B说想一份GC优化的资料内容,JVM内存分析以及性能调优的时候方便查询。可是文章太多根本看不过来,那么今天指北君就为大家带来这份,GC垃圾收集器总结及其优化指南,让你的JVM从此不再寂寞。

options选项

-dump:[live,]format=b,file=  将Java堆生成dump文件,

-finalizerinfo 输出等待执行finalizer方法的对象

-heap 输出堆的详细信息,GC算法,堆参数等等

-histo[:live] 输出堆的统计信息,包括Java类,对象数量,内存size等

-permstat Prints class loader wise statistics of permanent generation of Java heap

-F 强制生成dump,与jmap -dump / jmap -histo 等一起使用,如果进程id没有响应则强制生成dump文件

示例:77.png生成Java 堆dump文件


78.png

jstack

主要输出 Java线程的堆栈信息

79.png

示例:

80.png

JConsole

JConsole 是Java自带的可视化程序,可以监控一些内存线程等信息,使用也比较方便。

80.png81.jpg

VisualVM

VisualVM在在Java8之后就被从JDK中拿走,如果想使用可以去VisualVM官网(文末贴出下载地址)下载,它有标准版和基于GraalVM的版本,同时还有IDEA的插件用起来也比较方便。我们下载标准版VisualVM2.07先看一下。还是熟悉的味道。

82.jpg

Memory Analyzer (MAT)

Eclipse 出品的一款Java堆内存分析程序,可以帮助我们找到内存泄漏和减少内存消耗。可在其官网下载,文末贴出下载地址


83.jpg

总结

本篇总结了一些常用GC的垃圾回收流程,GC调优可以参考的一些参数。另外还介绍了一些分析Java性能的一下Java命令及可视化分析工具,在实际生产环境使用的话肯定会比所介绍的还要复杂,所以看官们还不快快动起手来操练一下。让你的JVM不再寂寞。由于每一个工具的详细使用都需要大篇幅,那么指北君后面将会为大家一一带来这些工具如何进行JVM性能调优。敬请期待!

后记

VisualVM 官网 :https://visualvm.github.io/

GraalVM 官网 :https://www.graalvm.org/

Memory Analyzer (MAT) 下载 官网:https://www.eclipse.org/mat/downloads.php (选择国内中科大的镜像,下载会快许多)

面试大全包括:包括 Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!

相关文章
|
12月前
|
监控 Java 编译器
Java虚拟机调优指南####
本文深入探讨了Java虚拟机(JVM)调优的精髓,从内存管理、垃圾回收到性能监控等多个维度出发,为开发者提供了一系列实用的调优策略。通过优化配置与参数调整,旨在帮助读者提升Java应用的运行效率和稳定性,确保其在高并发、大数据量场景下依然能够保持高效运作。 ####
288 58
|
11月前
|
算法 网络协议 Java
【JVM】——GC垃圾回收机制(图解通俗易懂)
GC垃圾回收,标识出垃圾(计数机制、可达性分析)内存释放机制(标记清除、复制算法、标记整理、分代回收)
|
11月前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
Arthas 监控 Java
JVM进阶调优系列(9)大厂面试官:内存溢出几种?能否现场演示一下?| 面试就那点事
本文介绍了JVM内存溢出(OOM)的四种类型:堆内存、栈内存、元数据区和直接内存溢出。每种类型通过示例代码演示了如何触发OOM,并分析了其原因。文章还提供了如何使用JVM命令工具(如jmap、jhat、GCeasy、Arthas等)分析和定位内存溢出问题的方法。最后,强调了合理设置JVM参数和及时回收内存的重要性。
|
监控 Java 测试技术
Elasticsearch集群JVM调优垃圾回收器的选择
Elasticsearch集群JVM调优垃圾回收器的选择
399 1
|
监控 Java 编译器
Java虚拟机调优实战指南####
本文深入探讨了Java虚拟机(JVM)的调优策略,旨在帮助开发者和系统管理员通过具体、实用的技巧提升Java应用的性能与稳定性。不同于传统摘要的概括性描述,本文摘要将直接列出五大核心调优要点,为读者提供快速预览: 1. **初始堆内存设置**:合理配置-Xms和-Xmx参数,避免频繁的内存分配与回收。 2. **垃圾收集器选择**:根据应用特性选择合适的GC策略,如G1 GC、ZGC等。 3. **线程优化**:调整线程栈大小及并发线程数,平衡资源利用率与响应速度。 4. **JIT编译器优化**:利用-XX:CompileThreshold等参数优化即时编译性能。 5. **监控与诊断工
|
存储 监控 Java
JVM进阶调优系列(8)如何手把手,逐行教她看懂GC日志?| IT男的专属浪漫
本文介绍了如何通过JVM参数打印GC日志,并通过示例代码展示了频繁YGC和FGC的场景。文章首先讲解了常见的GC日志参数,如`-XX:+PrintGCDetails`、`-XX:+PrintGCDateStamps`等,然后通过具体的JVM参数和代码示例,模拟了不同内存分配情况下的GC行为。最后,详细解析了GC日志的内容,帮助读者理解GC的执行过程和GC处理机制。
|
Arthas 监控 数据可视化
JVM进阶调优系列(7)JVM调优监控必备命令、工具集合|实用干货
本文介绍了JVM调优监控命令及其应用,包括JDK自带工具如jps、jinfo、jstat、jstack、jmap、jhat等,以及第三方工具如Arthas、GCeasy、MAT、GCViewer等。通过这些工具,可以有效监控和优化JVM性能,解决内存泄漏、线程死锁等问题,提高系统稳定性。文章还提供了详细的命令示例和应用场景,帮助读者更好地理解和使用这些工具。
|
6月前
|
Arthas 存储 算法
深入理解JVM,包含字节码文件,内存结构,垃圾回收,类的声明周期,类加载器
JVM全称是Java Virtual Machine-Java虚拟机JVM作用:本质上是一个运行在计算机上的程序,职责是运行Java字节码文件,编译为机器码交由计算机运行类的生命周期概述:类的生命周期描述了一个类加载,使用,卸载的整个过类的生命周期阶段:类的声明周期主要分为五个阶段:加载->连接->初始化->使用->卸载,其中连接中分为三个小阶段验证->准备->解析类加载器的定义:JVM提供类加载器给Java程序去获取类和接口字节码数据类加载器的作用:类加载器接受字节码文件。
650 55