New: jvmAll contenthive-129948krhive-196917steemzzanhive-166405hive-180932hive-185836hive-183959photographyuncommonlabhive-183397hive-150122hive-144064hive-101145hive-188619hive-145157bitcoinkrsuccesshive-184714hive-193637hive-103599hive-139150hive-180301hive-109690TrendingNewHotLikersfangwei (59)in study • 7 months ago【JVM】06. 性能调优(三):常见问题分析JVM的性能调优是确保应用高效运行的关键环节。在实际的生产环境中,我们经常会遇到各种性能问题,如内存溢出、CPU使用率飙升、线程死锁等。这些问题不仅影响应用的性能,还可能导致服务不可用。本文将针对这些常见问题,提供分析方法和解决方案。 1 内存问题 1.1 内存溢出 当JVM的堆内存使用达到上限时,会抛出 OutOfMemoryError…fangwei (59)in study • 8 months ago【JVM】05. 性能调优(二):GC日志分析上一篇文章主要介绍了如何使用监控命令和工具来监控JVM的性能,而本篇则更侧重于通过GC日志来分析JVM的垃圾回收情况。这两篇文章的内容可以相互补充,帮助我们更全面地了解JVM的性能调优。 1 设置GC日志参数 GC日志的详细程度可以通过JVM启动参数进行设置。以下是一些常用的GC日志参数: -Xloggc:./gc-%t.log :指定GC日志的输出文件。在这里, ./…fangwei (59)in study • 8 months ago【JVM】05. 性能调优(一):常用监控命令介绍JVM 性能调优是确保Java应用程序高效运行的关键。在本专题中,我们将深入探讨JVM性能调优的各个方面,包括常见的、诊断工具、性能问题以及调优策略。作为开篇,本文将介绍几个常用的JVM监控命令: jps 、 jmap 、 jinfo 、 jstack 和 jstat ,这些命令是性能调优和故障排查的重要工具。 1 jps jps (Java Virtual Machine…fangwei (59)in study • 8 months ago【JVM】04. 编译运行(二):JIT编译优化在上一篇博文中,我们深入探讨了JVM的后端编译过程,包括编译执行方式、即时编译器以及分层编译策略。本文作为编译运行专题的第二篇,将详细介绍JIT编译中的一些关键优化技术,包括代码预热、方法内联、逃逸分析、锁消除、栈上分配和标量替换等。 1 代码预热 JIT 编译运用了一些编译优化技术来提高程序的执行效率,减少资源消耗,并提升整体性能,这些优化的前提往往都需要进行热点代码探测。…fangwei (59)in study • 8 months ago【JVM】04. 编译运行(一):后端编译本专题,我们将聚焦于JVM的后端编译过程,这是提高Java程序运行效率的核心环节。本文将详细介绍后端编译的执行方式、即时编译中的C1、C2编译器,还有分层编译的策略。 1 编译运行概述 Java 程序的编译过程是分为两部分: 前端编译 :将java文件编译成为class文件中的 字节码指令 ,是在 JVM 虚拟机之外执行的, 注重逻辑 ; 后端编译…fangwei (59)in study • 8 months ago【JVM】03. 内存管理(五):垃圾收集器在前面我们已经了解了内存的划分和垃圾回收的基本概念。本文将深入探讨JVM中的几种主要垃圾收集器(Garbage Collectors,GC),包括Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1和ZGC,它们的原理和核心参数。 1 单线程垃圾收集器 整个垃圾收集过程只使用 单个线程…fangwei (59)in study • 8 months ago【JVM】03. 内存管理(四):垃圾回收机制在JVM内存管理系列博文中,我们已经了解了内存区域划分、对象创建和内存分配机制。本文将深入探讨垃圾回收(Garbage Collection, GC)的标记算法和回收算法,这两个概念是垃圾回收的核心。 1 垃圾标记算法 垃圾回收的第一步是识别出内存中哪些对象是“垃圾”,即不再被任何引用所指向的对象。标记算法负责这一过程: 1.1 引用计数法 基本思想…fangwei (59)in study • 8 months ago【JVM】03. 内存管理(三):内存分配在Java虚拟机(JVM)中,内存管理是一个关键的环节,它涉及到对象的创建、内存的分配与回收等多个方面。前两篇文章中,我们已经介绍了内存区域划分和对象创建的过程。本文将重点探讨JVM中的内存分配机制。 1 空闲地址维护 在 JVM…fangwei (59)in study • 8 months ago【JVM】03. 内存管理(二):对象创建在JVM中,对象的创建是程序运行的基础,它关联着内存分配、垃圾回收等关键环节。深入掌握对象创建的内在机制,对于高效地进行内存管理和系统性能调优具有重大意义。本文将全面解析对象的构成要素、指针压缩技术、对象尺寸的确定以及对象创建的具体流程。 1 对象组成 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域: 对象头 :HotSpot虚拟机的对象头包括…fangwei (59)in study • 8 months ago【JVM】03. 内存管理(一):内存区域划分我们现在转向JVM的另一个关键领域:内存管理。本篇文章作为JVM内存管理系列的开篇,将聚焦于JVM内存区域的划分。通过这篇文章,读者将能够理解JVM内存的基本结构,为后续深入学习打下坚实的基础。 1 内存区域 JVM在执行Java程序的过程中,会把数据分到运行时数据区中不同的内存区域管理,包括 程序计数器、虚拟机栈、堆、方法区、本地方法栈 等等。 1.1 程序计数器…fangwei (59)in study • 8 months ago【JVM】02. 类加载(三):双亲委派继上一篇博文深入探讨了类加载器的类型、初始化过程和如何自定义类加载器之后,本篇博文将聚焦于Java类加载机制的核心原则——双亲委派模型。我们将详细介绍双亲委派机制的实现方式、其在Java类加载中的作用,以及如何打破这一机制。 1 类加载机制 类加载器在加载类的过程中,遵循以下加载机制: 懒加载机制 :jar包或war包里的类不是一次性全部加载的,是…fangwei (59)in study • 9 months ago【JVM】02. 类加载(二):类加载器在前两篇博文中,我们对JVM的整体架构进行了概览,并深入探讨了类加载器子系统中的类加载过程。本文将聚焦于类加载器本身,为后续介绍双亲委派机制做铺垫。 1 类加载器类型 类加载过程主要是由类加载器实现,在JVM中类加载器根据类的加载路径实现了以下4种类加载器: BootstrapClassLoader(启动类加载器): 最顶层的加载类,由 C++实现, 主要用来加载…fangwei (59)in study • 9 months ago【JVM】02. 类加载(一):类加载过程在上一篇博文中,我们对JVM的整体架构进行了概览,包括类加载器子系统、运行时数据区、执行引擎、本地方法接口(JNI)以及本地方法库的作用。本文将深入探讨类加载器子系统中的类加载过程。 1 类加载过程 类的生命周期如下,其中加载的过程包括了 加载、验证、准备、解析、初始化 五个阶段 加载…fangwei (59)in study • 9 months ago【JVM】01. JVM 概览当我们在终端键入 javac 命令,随后执行 java 命令,背后其实发生了一连串复杂而精妙的过程。从源代码到可执行的字节码,再到JVM中的运行,这个过程充满了各种优化和设计哲学。在本篇博文中,主要是对JVM整体架构进行介绍,以帮助读者对JVM有个初步的整体上的理解,为后续深入学习JVM提供基础。 1 JVM 整体架构 JVM是由…fangwei (59)in study • 9 months ago【JVM】00. 引言选择Java虚拟机(JVM)作为我第一个系列博文的主题,是因为它是理解和掌握 Java 技术栈的关键。JVM 不仅涉及到 Java 程序的运行机制,还与性能优化、内存管理、垃圾回收等高级话题紧密相关。对于 Java 开发者来说,理解 JVM 可以帮助我们编写更高效、更稳定的代码,以及解决实际工作中遇到的各种问题。 本系列博文旨在对 JVM…doctorserone (36)in hive-109160 • 3 years agoJava development with Spring Boot: Importing skeleton to IntelliJ Java IDEThis is the third post on the Spring Boot posts series. You can read the previous one here: Post 1: Post 2: In this post, we'll import into IntelliJ Java IDE the app skeleton that we…doctorserone (36)in hive-109160 • 3 years agoJava development with Spring Boot: Create an app skeleton with InitializrThis is the second post on the Spring Boot posts series. You can read the previous one here: In this post, we'll create an app skeleton with all required dependencies. We'll use this…doctorserone (36)in development • 3 years agoJava development with Spring Boot: What is Spring Boot?Today I'll start a series of posts about Java development with the amazing framework Spring Boot. First of all, sorry about any mistake, because English is not my natural language, and I'm still…louis.liu (25)in jvm • 6 years ago2018 JVM 生态报告生态报告2018 JVM 生态调查报告已于近日发布,该报告由 Snyk 和 The Java Magazine(Oracle 的双月刊)联合推出,旨在了解 JDK 的实现、工具、平台和应用方面的前景。 基于超过 10200 份用户问卷,报告生成了如下结果: 1、你主要使用哪个 Java 供应商的 JDK ? 70% 的用户使用 Oracle JDK ,21% 的使用 OpenJDK 。…coolcamera (26)in java • 6 years agosteemCreated with Sketch.JVM Architecture & Java Bytecode - Java BytecodeIf you like my video, please click the LIKE button, leave a COMMENT and RESTEEM :) If you wish, you can support me on Patreon: Thank you!!! ▶️ DTube ▶️ IPFS