文章 2023-01-10 来自:开发者社区

JVM技术之旅-线上分析排查问题

前提概要线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令。也可以帮助自己在以后的工作中快速的排查线上问题。jmap命令jmap -heap pid :输出当前进程 JVM 堆新生代、老年代、持久代等请情况,GC 使用的算法等信息jmap -histo:live {pid} | head -n 10 :输....

JVM技术之旅-线上分析排查问题
文章 2023-01-10 来自:开发者社区

JVM技术之旅-深入分析GC回收机制

前提概要GC的出现解放了程序员需要手动回收内存的苦恼,但我们也是要了解GC的,知己知彼,百战不殆嘛。背景介绍常见的GC回收算法主要包括引用计数算法、可达性分析法、标记清除算法、标记复制算法、标记压缩算法、分代算法以及分区算法。其中,引用计数法和可达性分析法用于判定一个对象是否可以回收,其他的算法为具体执行GC时的算法。聊聊标记清除算法、复制算法、标记压缩算法、分代算法,主要介绍分代算法。 引用计....

JVM技术之旅-深入分析GC回收机制
文章 2023-01-10 来自:开发者社区

JVM技术之旅-了解分析内存布局区域

前提概要本文主要针对于JVM的内存布局以及相关的关联性和特性进行相关的分析,后续会针对于更加详细以及深入的分析文字作为补充。针对于每个“Java爱好者”,如果希望可以探究其本质,减少内心的疑惑,最好的办法就是研究底层的原理,而JVM的内存管理既是Java的独特魅力之处,又是开发人员 “未知的圣地”,接下来我们就慢慢迈入这个领域。JVM内存布局如果想要了解JVM的内存管理,那么首先我们要知道JVM....

JVM技术之旅-了解分析内存布局区域
文章 2023-01-08 来自:开发者社区

JVM是如何判定对象为垃圾的(可达性分析算法)

前言:被判定为垃圾的对象或者内存区域会被垃圾收集器回收。那么什么样的对象或者内存区域会被判定为垃圾呢?下面就要说起经常作为垃圾判定依据的可达性分析算法与引用计数法了。这两种算法,都是经常被用作垃圾判定的算法,下面说下这两种算法。一.引用计数法为对象添加一个引用计数器,当有一个对象引用了该对象时,引用计数器就加一,当引用失效时引用计数器就减一,当引用计数器的值为零时,就说明该对象变成了垃圾。二.可....

JVM是如何判定对象为垃圾的(可达性分析算法)
文章 2023-01-05 来自:开发者社区

JVM 逃逸分析技术

网络异常,图片无法展示|简介逃逸分析技术的日渐成熟,促使所有的Java对象实例不一定都在Java堆上分配内存简单来讲就是,Java Hotspot 虚拟机可以分析新创建对象的使用范围,并决定是否在 Java 堆上分配内存的一项技术。使用开启逃逸分析:-XX:+DoEscapeAnalysis关闭逃逸分析:-XX:-DoEscapeAnalysis显示分析结果:-XX:+PrintEscapeAn....

JVM 逃逸分析技术
文章 2022-10-25 来自:开发者社区

JDK中自带的JVM分析工具

内存溢出,妥妥的名场面;一、业务背景对于分布式架构中的文件服务来说,由于涉及大量的IO流操作,很容易引发JVM的相关异常,尤其是内存溢出的问题;在最近的一次版本迭代中,真实的业务处理场景和上述几乎一致,由于在文件服务中添加批量处理的动作,直接唤醒了隐藏许久的BUG,就是最常见的内存溢出;问题的起因:在word文档完成内容识别后,转换为pdf文件,然后进行页面分割转为一组图片,在这个复杂并且超长的....

JDK中自带的JVM分析工具
文章 2022-10-11 来自:开发者社区

神操!精选JVM垃圾回收机制全面分析,聊聊你眼中的JVM

JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在....

文章 2022-09-24 来自:开发者社区

JVM系列之:关于逃逸分析的学习

本文为《深入学习 JVM 系列》第十九篇文章上文讲解完方法内联后,JIT 即时编译还有一个最前沿的优化技术:逃逸分析(Escape Analysis) 。废话少说,我们直接步入正题吧。逃逸分析首先我们需要知道,逃逸分析并不是直接的优化手段,而是通过动态分析对象的作用域,为其它优化手段提供依据的分析技术。具体而言就是:逃逸分析是“一种确定指针动态范围的静态分析,它可以分析在程序的哪些地方可以访问到....

JVM系列之:关于逃逸分析的学习
文章 2022-09-24 来自:开发者社区

JVM系列之:宏观分析Java代码是如何执行的

本文为《深入学习 JVM 系列》第一篇文章前言作为一名 Java 程序员,平日里都是和 Java 代码打交道,但是仅限于使用,比如说使用 Java 核心类库,以及调用第三方类库里的 API。凭借上述“本事”便可以专注于实现具体业务,并且依赖 Java 虚拟机自动执行乃至优化我们的应用程序。那么自己就仅限于此了吗?众所周知,JVM 和并发是应聘面试中两个绕不开的考点,大厂一些岗位招聘要求上明确写着....

JVM系列之:宏观分析Java代码是如何执行的
文章 2022-09-24 来自:开发者社区

JVM执行引擎深入分析

程序和机器沟通的桥梁一、闲聊相信很多朋友在出国旅游,或者与外国友人沟通的过程中,都会遇到语言不通的烦恼。这时候我们就需要掌握对应的外语或者拥有一部翻译机。而笔者只会中文,所以需要借助一部翻译器才能与不懂中文的外国友人交流。咱们的执行引擎就类似于这部“翻译机”。二、概述执行引擎的作用就是将字节码指令解释或者编译为对应平台上的本地机器指令。简单来说,执行引擎充当了将高级语言翻译为机器语言的翻译者。对....

JVM执行引擎深入分析

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注