草庐IT

详解Native Memory Tracking 追踪区域分析

摘要:本篇将介绍NMT追踪区域的部分内存类型——Javaheap、Class、Thread、Code以及GC。本文分享自华为云社区《NativeMemoryTracking详解(2):追踪区域分析(一)》,作者:毕昇小助手。本篇将介绍NMT追踪区域的部分内存类型——Javaheap、Class、Thread、Code以及GC。追踪区域内存类型在上文中我们打印了NMT的相关报告,但想必大家初次看到报告的时候对其追踪的各个区域往往都是一头雾水,下面就让我们来简单认识下各个区域。查看JVM中所设定的内存类型:#hotspot/src/share/vm/memory/allocation.hpp/**

初步探索GraalVM——云原生时代JVM黑科技

1云原生时代Java语言的困境经过多年的演进,Java语言的功能和性能都在不断的发展和提高,诸如即时编译器、垃圾回收器等系统都能体现Java语言的优秀,但是想要享受这些功能带来的提升都需要一段时间的运行来达到最佳性能,总的来说Java是面向大规模、长时间使用的服务端应用而设计的。云原生时代,Java语言一次编译到处运行的优势不复存在,理论上使用容器化技术,所有语言都能部署上云,而无法脱离JVM的Java应用往往要面对JDK内存占用比应用本身还大的窘境;Java动态加载、卸载的特性也使得构建的应用镜像中有一半以上的无用代码和依赖这些都使得Java应用占用内存相当多。而启动时间长,性能达到峰值的时

初步探索GraalVM——云原生时代JVM黑科技

1云原生时代Java语言的困境经过多年的演进,Java语言的功能和性能都在不断的发展和提高,诸如即时编译器、垃圾回收器等系统都能体现Java语言的优秀,但是想要享受这些功能带来的提升都需要一段时间的运行来达到最佳性能,总的来说Java是面向大规模、长时间使用的服务端应用而设计的。云原生时代,Java语言一次编译到处运行的优势不复存在,理论上使用容器化技术,所有语言都能部署上云,而无法脱离JVM的Java应用往往要面对JDK内存占用比应用本身还大的窘境;Java动态加载、卸载的特性也使得构建的应用镜像中有一半以上的无用代码和依赖这些都使得Java应用占用内存相当多。而启动时间长,性能达到峰值的时

Spring实战入门,带你轻松掌握Spring框架

Spring框架是什么?Spring是于2003年兴起的一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring的核心是控制反转(IoC)和面向切面编程(AOP)。Spring是可以在JavaSE/EE中使用的轻量级开源框架。Spring的主要作用就是为代码“解耦”,降低代码间的耦合度。就是让对象和对象(模块和模块)之间关系不是使用代码关联,而是通过配置来说明。即在Spring中说明对象(模块)的关系。Spring根据代码的功能特点,使用Ioc降低业务对象之间耦合度。IoC使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了。而是由Spr

Spring实战入门,带你轻松掌握Spring框架

Spring框架是什么?Spring是于2003年兴起的一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring的核心是控制反转(IoC)和面向切面编程(AOP)。Spring是可以在JavaSE/EE中使用的轻量级开源框架。Spring的主要作用就是为代码“解耦”,降低代码间的耦合度。就是让对象和对象(模块和模块)之间关系不是使用代码关联,而是通过配置来说明。即在Spring中说明对象(模块)的关系。Spring根据代码的功能特点,使用Ioc降低业务对象之间耦合度。IoC使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了。而是由Spr

带你认识JDK8中超nice的Native Memory Tracking

摘要:从OpenJDK8起有了一个很nice的虚拟机内部功能:NativeMemoryTracking(NMT)。本文分享自华为云社区《NativeMemoryTracking详解(1):基础介绍》,作者:毕昇小助手。0.引言我们经常会好奇,我启动了一个JVM,他到底会占据多大的内存?他的内存都消耗在哪里?为什么JVM使用的内存比我设置的-Xmx大这么多?我的内存设置参数是否合理?为什么我的JVM内存一直缓慢增长?为什么我的JVM会被OOMKiller等等,这都涉及到JAVA虚拟机对内存的一个使用情况,不如让我们来一探其中究竟。1.简介除去大家都熟悉的可以使用-Xms、-Xmx等参数设置的堆(

带你认识JDK8中超nice的Native Memory Tracking

摘要:从OpenJDK8起有了一个很nice的虚拟机内部功能:NativeMemoryTracking(NMT)。本文分享自华为云社区《NativeMemoryTracking详解(1):基础介绍》,作者:毕昇小助手。0.引言我们经常会好奇,我启动了一个JVM,他到底会占据多大的内存?他的内存都消耗在哪里?为什么JVM使用的内存比我设置的-Xmx大这么多?我的内存设置参数是否合理?为什么我的JVM内存一直缓慢增长?为什么我的JVM会被OOMKiller等等,这都涉及到JAVA虚拟机对内存的一个使用情况,不如让我们来一探其中究竟。1.简介除去大家都熟悉的可以使用-Xms、-Xmx等参数设置的堆(

RocketMQ 5.0 多语言客户端的设计与实现

本文作者:古崟佑,阿里云中间件开发。 RocketMQ5.0版本拥有非常多新特性,比如存储计算分离、batch能力的提升等,它是具有里程碑意义的版本。提到新版本,我们往往会首先想到服务端架构的设计变动,很容易忽略客户端的设计理念。客户端也是消息产品的必要组成部分,许多特性需要client与server两端互相协作,才能更好地实现。轻量化、云原生以及统一模型是RocketMQ5.0客户端的三个设计理念。 01轻量化轻量化的重点在于轻逻辑、轻流程,化繁为简,减少多语言生态发展的阻碍。上图列举了RocketMQ4.x版本和RocketMQ5.0版本的差异。①4.x版本的序列化使用JsonCodecs

RocketMQ 5.0 多语言客户端的设计与实现

本文作者:古崟佑,阿里云中间件开发。 RocketMQ5.0版本拥有非常多新特性,比如存储计算分离、batch能力的提升等,它是具有里程碑意义的版本。提到新版本,我们往往会首先想到服务端架构的设计变动,很容易忽略客户端的设计理念。客户端也是消息产品的必要组成部分,许多特性需要client与server两端互相协作,才能更好地实现。轻量化、云原生以及统一模型是RocketMQ5.0客户端的三个设计理念。 01轻量化轻量化的重点在于轻逻辑、轻流程,化繁为简,减少多语言生态发展的阻碍。上图列举了RocketMQ4.x版本和RocketMQ5.0版本的差异。①4.x版本的序列化使用JsonCodecs

老杜带你学Ajax,轻松掌握ajax底层实现原理

课程导读原生的ajax虽然在实际开发中很少编写,但如果想将js高级框架底层学明白,那ajax的原理是必须要求精通的。本套ajax视频对ajax底层实现原理讲解非常透彻,对ajax发送异步请求的每一步都进行了透彻的分析,让你彻底搞懂搞透ajax。课程主要涵盖的内容:ajax底层实现原理剖析、ajax跨域,手写jquery库、ajax省市联动、ajax实现搜索联想、ajax改造oa项目等,课程在理论层面非常深入,使用大量实战案例来进行驱动,能够让大家在欢快愉悦的环境当中,掌握技术底层的实现原理。https://www.bilibili.com/video/BV1cR4y1P7B1Ajax的目的首先