JVM
尘客.
大数据开发攻城狮
展开
-
JVM后端编译与优化—即时编译优化技术
我们在日常工作学习中写了许许多多的代码,随着技术的精进,可能回过头去看看半年前写的代码会觉得不堪入目。不过没关系,即使是你现在写的代码已经很优雅了,JVM依旧认为是需要优化的。那JVM是如何进行优化的呢?原创 2020-11-01 09:32:39 · 195 阅读 · 0 评论 -
JVM即时编译器-你知道解释器与编译器是如何配合工作的吗?
本文从JVM代码执行时解释器与编译器的分工合作切入,首先学习解释执行与编译执行的关系,进而引出分层编译技术模型以及在此之下的“两器”交互过程。而后从编译触发条件出发重点论述了热点代码探索中的方法计数器、回边计数器。最后学习了C1(客户端编译器)基本工作过程以及C2(服务端编译器)的优秀特性。原创 2020-10-25 15:57:55 · 360 阅读 · 0 评论 -
一文读懂JVM逃逸分析与编译优化
逃逸分析(Escape Analysis,EA)其作为HotSpot VM C2(服务端编译器)下较为先进的激进优化技术,通过分析对象动态作用域,以此判断该对象所能采取的优化技术。如当一个对象在作为参数传入其他方法时,其可以被其他方法访问了,称之为方法逃逸;在被其他外部线程访问时,称之为线程逃逸。逃逸等级从不逃逸、方法逃逸、线程逃逸逐步升高。基于对象逃逸分析结果,为采取不同的优化策略提供参考;原创 2020-10-18 11:32:09 · 230 阅读 · 0 评论 -
新一代垃圾回收器ZGC的探索与实践
文章转发学习自美团技术团队:https://tech.meituan.com/2020/08/06/new-zgc-practice-in-meituan.htmlZGC(The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,它的设计目标包括:停顿时间不超过10ms; 停顿时间不会随着堆的大小,或者活跃对象的大小而增加; 支持8MB~4TB级别的堆(未来支持16TB)。从设计目标来看,我们知道ZGC适用于大内存低延迟服务的内存管理和回收。本文主要介绍.转载 2020-08-24 23:16:01 · 472 阅读 · 0 评论 -
JVM Error:could not reserve space for object heap
错误背景windows10,Java8,Idea(2019.X)上测试maven(v3.5)项目时将JVM的堆内存进行设置,此处在VM Options传参为:-Xms2048m -Xmx2048m。进而在运行项目时出现:could not reserve space for object heap而将这两个参数调到1G以下是可以正常运行的。解决过程一开始以为是系统内存不够用的问题,但...原创 2020-03-24 20:31:21 · 533 阅读 · 0 评论 -
java类的加载机制
转发学习大佬博客:https://www.cnblogs.com/ityouknow/p/5603287.htmljvm系列(一):java类的加载机制1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区...转载 2019-12-09 20:50:11 · 103 阅读 · 0 评论 -
kafka Web UI可视化监控搭建 (kafka eagle,附JVM参数解释)
0、eagle github地址附上:https://github.com/smartloli/kafka-eagle,这里采用的是kafka-eagle-web-1.3.71、修改KAFKA_HOME/bin/kafka-server-start.shif [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-ser...原创 2019-09-18 20:53:19 · 8447 阅读 · 2 评论 -
JVM学习笔记(四)虚拟机监控与故障处理工具
目前有许多分析JVM程序的工具,首先就是jdk本身提供的基本分析工具如jmap、jconsole、VisualVM等,此外还有一些第三方工具如基于eclipse的MAT。分析工具对于JVM程序优化有着举足轻重的作用。jdk提供的工具以下内容参考周志明老师著述:《深入理解Java虚拟机》第二版。首先来看下基于文本的JVM相关工具:其实现在已经有许多更好的工具作为替代,但在linux的命令行...原创 2019-08-22 13:17:19 · 168 阅读 · 0 评论 -
JVM学习笔记(三) GC机制、内存分配与回收策略
乘着业余时间断断续续花了半个月把oracle官方文档(Java12 HotSpot VM)中关于GC系列部分啃了一遍,再结合周志明老师著述《深入理解Java虚拟机》(java7)进行了一个综合复习。为了在以后的工作中能够快速进行相关知识盲点的肃清,在此进行学习记录。本文主要包含**JVM对象存活判断、内存回收算法、几种主要的GC Collector(重点论述了G1)、内存分配策略、再论永久代与元空间**原创 2019-08-10 12:04:48 · 932 阅读 · 0 评论 -
JVM学习笔记(一) JVM学习回顾--概述与思考
记得在网上看到过一句话:对于java开发人员,无论代码写的有多烂,都有JIT作为托底,而C++不行,只需要一个指针越界就足以让程序崩溃。严格来说,事实并非如此,JVM也有内存泄漏、GC抖动、并发死锁等问题,为了写出更加高效、优雅的代码,迈出这一步,需要更多地去了解“糖衣”背后的真相,在遇到问题时才知道如何更好的去解决。原创 2019-07-22 23:09:17 · 246 阅读 · 0 评论 -
JVM学习笔记(二)JVM运行时内存模型
需求很大程度上决定学习导向,可能对于很多人来说之所以学习JVM是因为需要在部署到JVM上的运用开发中解决各种各样的问题(详见上一篇博客:[JVM学习笔记(一) JVM学习回顾--概述与思考](https://blog.csdn.net/qq_34901049/article/details/96911847))。我们首先来学习了解JVM的运行时内存模型。譬如java程序,在运行过程中总是伴随着对象内存的不断创建与销毁,而在对象的生命周期中亦伴随着内存的分配与回收。这时候就不得不提到JVM的自动内存回收了;原创 2019-07-25 22:52:06 · 280 阅读 · 0 评论