首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏小工匠聊架构

    JVM - 应用JVM核心参数推荐设置

    Pre JVM-08垃圾收集Garbage Collection【GC常用参数】 ? ---- JDK版本 = 1.8 ---- 核心参数 ? ---- 线程栈 默认1M , 不足的话 StackOverflowError -Xss设置越小 ,说明一个线程栈里能分配的栈帧就越少,但是对JVM整体来说能开启的线程数会更多 ,当然了,线程多了并不一定性能就高 对于64位JVM来说,元空间的默认初始大小是21MB,若不足,GC后自动扩容,无上限,取决于操作系统的内存大小。 ---- 【经验之谈】 一般建议在JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值 ,8G物理内存的机器来说,可以将这两个参数设置为256M 如果应用启动比较慢, 可以看下是不是因为方法区的JVM参数没有设置(默认值21 ,频繁GC,自动扩容)导致的。

    2.1K40发布于 2021-08-17
  • 来自专栏程序你好

    JVM架构介绍

    但是很多人不知道JRE是Java虚拟机(JVM)的实现,它分析字节码、解释代码并执行代码。作为开发人员,了解JVM的体系结构非常重要,因为它使我们能够更有效地编写代码。 在本文中,我们将更深入地了解Java中的JVM体系结构和JVM的不同组件。 JVM是什么? 虚拟机是物理机器的软件实现。 编译器将Java文件编译成Java .class文件,然后将.class文件输入JVM, JVM加载并执行类文件。 JVM架构图 ? JVM是如何工作的? 每个JVM只有一个方法区域,它是一个共享资源。 Heap Area(堆区) – 所有对象及其对应的实例变量和数组都将存储在这里。每个JVM也只有一个堆区域。 JVM的垃圾收集收集创建的对象。 Java Native Interface (JNI): JNI将与本机方法库进行交互,并提供执行引擎所需的本机库。

    1.1K10发布于 2019-11-06
  • 来自专栏Java工程师日常干货

    【随笔】JVM核心JVM运行和类加载

    前言 本篇博客将写一点关于JVM的东西,涉及JVM运行时数据区、类加载的过程、类加载器、ClassLoader、双亲委派机制、自定义类加载器等,这些都是博主自己的一点理解,如果有误,欢迎大家评论拍砖~ 关于JVM运行时数据区 ? JVM运行时数据区 关于类加载 class文件加载至内存,链接(校验、解析),初始化;最终形成JVM可以直接使用的JAVA类型的过程。 类加载器的层次结构 引导类加载器bootstrap classloader 加载JAVA核心库($JAVA_HOME/jre/lib/rt.jar),原生代码实现(C++),并不继承自java.lang.ClassLoader 这显然保证了Java核心库的类型安全。

    47930发布于 2018-08-20
  • 来自专栏陈树义

    JVM系列第9讲:JVM垃圾回收器

    前面文章中,我们介绍了 Java 虚拟机的内存结构,Java 虚拟机的垃圾回收机制,那么这篇文章我们说说具体执行垃圾回收的垃圾回收器。

    68810发布于 2018-12-14
  • 来自专栏java一日一条

    JVM 架构解读

    但许多人不知道JRE是Java Virtual Machine(JVM)的实现,它分析字节码,解释代码并执行它。作为开发人员,我们应该知道JVM架构是非常重要的,因为它使我们能够更有效地编写代码。 在本文中,我们将更深入地了解Java中的JVM架构JVM的不同组件。 什么是JVM? Virtual Machine是物理机器的软件实现。 编译器将Java文件编译为Java .class文件,然后将.class文件输入到JVM中,JVM会加载并执行类文件。下面是JVM架构图。 ? JVM如何工作? 如上面的架构图所示,JVM分为三个主要子系统: 类加载器子系统 运行时数据区 执行引擎 1.类加载器子系统 Java的动态类加载功能由类加载器子系统处理。 每个JVM只有一个方法区,并且它是一个共享资源。 堆区域——所有对象及其对应的实例变量和数组将存储在这里。每个JVM也有一个堆区域。由于方法和堆区域共享多个线程的内存,因此所存储的数据非线程安全。

    91610发布于 2018-09-18
  • 来自专栏Java技术圈子

    JVM内存架构简述

    运行时数据区 运行时数据区绝对是JVM重中之重,因为业务中常用的内存调优就是在这个部分进行的 首先复习一下jvm的组成部分,中间这一块就是运行时数据区了, 数据区广义上可以分成两部分,堆和栈,其中栈是不会产生垃圾的 之前的文章已经写过几篇类加载器的内容了,这一篇解释,当类以内存的形式加载进jvm后,是怎么被使用的。 本地方法栈 JVM 中的栈包括 Java 虚拟机栈和本地方法栈,两者的区别就是,Java 虚拟机栈为 JVM 执行 Java 方法服务,本地方法栈则为 JVM 使用到的 Native 方法服务。 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的。方法区的大小,跟堆空间一样,可以选择固定大小或者可扩展。 对于一个64位的服务器端JVM来说,其默认的-XX:Metaspacesize值为21MB。

    50530编辑于 2023-02-28
  • 来自专栏全栈程序员必看

    JVM Specification 整体架构

    出自:http://developer.51cto.com/art/201009/227977.htm 你对JVM内存结构是否了解,这里和大家分享一下,JVM内存结构主要包括两个子系统和两个组件, JVM内存结构 近期看了看Java内存泄露的一些案例,跟原来的几个哥们讨论了一下,深入研究发现JVM里面还是有不少以前不知道的细节,这里稍微剖析一下。先看一看JVM内部结构—— ? 如图所示,JVM内存结构主要包括两个子系统和两个组件。 任何JVMspecification实现(JDK)的核心都是Executionengine,不同的JDK例如Sun的JDK和IBM的JDK好坏主要就取决于他们各自实现的Executionengine的好坏 RuntimeDataArea组件: 这就是我们常说的JVM的内存了。

    59020发布于 2021-05-19
  • 来自专栏悠扬前奏的博客

    JVM-9.Class类文件结构

    attribute_info),在Class文件,字段表,方法表都可以携带自己的属性表集合,用于描述场景专有信息 属性表不要求具有严格顺序 不与已有属性名重复,任何编译器都可以向属性表中写入自定义属性信息,JVM JVM预定义属性1 ? JVM预定义属性2 每个属性都需要从常量池中引入一个CONSTANT_Utf8_info类型常量来表示 属性值的结构完全自定义,只需要通过一个u4的长度属性来说明属性值占用位数 属性表结构: attribute_name_index一共6字节,所以属性值的长度固定位整个属性表长度减去6字节 max_stack标识操作数栈(Operand Stacks)深度的最大值,在方法执行的任意时刻,操作数栈不会超过这个深度,JVM SourceFile属性结构 sourcefile_index:指向常量池中CONSTANT_Utf8_info,其值为源码文件的文件名 8.6 ConstantValue属性 通知JVM自动为静态变量赋值

    1K40发布于 2019-05-28
  • 来自专栏一个会写诗的程序员的博客

    JVM 核心知识点

    想要提高程序员自身的内功心法无非就是: 数据结构跟算法 + 操作系统 + 网络 ,而所有的Java代码都是在JVM上运行的,了解了JVM好处就是: 写出更好更健壮的代码。 1、简述JVM 内存模型 ? 从宏观上来说JVM 内存区域 分为三部分 线程共享区域 、 线程私有区域 、 直接内存区域 。 4、GC流程 核心思想就是 根据各个年代的特点不同选用不同到垃圾收集算法 。 年轻代 :使用 复制算法 老年代 : 使用 标记整理 或者 标记清除 算法。 JDK7、JDK8 默认垃圾收集器 Parallel Scavenge(新生代)+ Parallel Old(老年代) JDK9 默认垃圾收集器 G1 ,服务端开发常见组合就是 ParNew + CMS G1作为JDK9之后的服务端默认收集器,不再区分年轻代和老年代进行垃圾回收,G1默认把堆内存分为N个分区,每个1~32M(总是2的幂次方)。

    90641发布于 2021-03-22
  • 来自专栏架构随笔录

    Dubbo核心架构

    Multicast注册中心:Multicast 注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现。

    64330发布于 2020-02-24
  • 来自专栏CSDN技术头条

    一图读懂JVM架构解析

    但他们或许不知道JRE其实是由Java虚拟机(JVM)实现,JVM分析字节码,解释并执行它。作为开发人员,了解JVM架构是非常重要的,因为它使我们能够编写出更高效的代码。 本文中,我们将深入了解Java中的JVM架构JVM的各个组件。 JVM 虚拟机是物理机的软件实现。Java的设计理念是WORA(Write Once Run Anywhere,一次编写随处运行)。 编译器将Java文件编译为Java .class文件,然后将.class文件输入到JVM中,JVM执行类文件的加载和执行的操作。请看以下的JVM架构图: ? JVM是如何工作的? 如上面架构图所示,JVM分为三个主要子系统: 类加载器子系统(Class Loader Subsystem) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine 每个JVM只有一个方法区,它是一个共享资源; (2) 堆区域(Heap Area):所有对象及其对应的实例变量和数组将存储在这里。每个JVM也只有一个堆区域。

    1.9K80发布于 2018-02-12
  • 来自专栏AI大模型应用开发炼丹房

    一文读懂AI智能体架构设计的9核心技术

    今天我们来系统梳理AI智能体架构设计的九大核心技术,这些技术构成了现代AI应用开发的核心框架,涵盖从基础推理到多智能体协作、从数据处理到人机交互的关键层面。欢迎各位指正交流。 其核心架构包括以下组件:​​Prompt(提示词)​​:用于引导大语言模型(LLM)的行为,定义可用的工具集,输出为JSON格式,指示下一步操作(如工具调用或函数调用)。​​ 其核心机制包括:​​能力发现​​:通过“Agent Card”公开智能体能力;​​任务管理​​:支持长短任务同步;​​协作通信​​:智能体间传递上下文与结果;​​用户体验协商​​:统一数据返回格式。 最后总结以上九大技术构成了AI智能体架构核心体系,覆盖了智能体基础、多智能体协作、知识增强、模型优化、工具调用、协议标准化及人机交互等关键维度。 如果您对AI大模型架构设计与落地实践感兴趣,欢迎关注我的后续分享。

    4.7K41编辑于 2025-09-11
  • 来自专栏设计模式

    深度解析Java 9核心新特性

    -source 9 -target 9 MyClass9.java # 编译Java 9版本的类 jar cfm multi-release.jar manifest.mf -C classes/ 统一的JVM日志系统(JEP 158) Java 9JVM的日志系统进行了统一,提供了一个通用的日志接口,并允许用户通过命令行选项或JVM监控工具(如JConsole和VisualVM)来配置和管理日志 统一的日志系统主要通过JVM参数配置,可以通过以下JVM参数来配置日志: java -Xlog:gc*:file=gc.log:time,uptime,pid,tags:filecount=10,filesize =10m MyApplication 这条命令配置JVM记录所有GC相关的日志到一个名为gc.log的文件中,并设置了一些日志选项和轮转策略。 新的HTTP/2客户端API(JEP 110) Java 9引入了一个新的HTTP/2客户端API,它支持HTTP/2协议的所有核心特性,包括多路复用、头部压缩、流量控制和服务器推送。

    53800编辑于 2024-05-06
  • 来自专栏Android知识点总结

    01--Java核心JVM引入篇

    ) JVM: Java虚拟机(Java Virtual) Machine。 jdk-jre-jvm.png 5.历史上的java虚拟机类型 虚拟机即:虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的 JVM只是一种用于计算设备的规范,广义来说相当于一个接口 ,而接口的实现可以不同,但都能起到JVM的作用 Java发展至今JVM也有过更新迭代,也有基于不同场景下使用的JVM Sun Classic VM 第一款商用Java 虚拟机,纯解释器方式执行java EXact VM 编译器解释器混合工作,很快被HotSpot VM取代(已退出历史舞台) HotSpot VM 沿用至今 KVM 手机端----效率低(已退出历史舞台) JRockit 专注服务端应用 J9 IBM公司 Microsoft JVM windows----平台专用(已退出历史舞台) Taobao VM 淘宝根据HotSpot VM定制 Dalvik 安卓虚拟机,寄存器架构,执行.dex文件(.

    45930发布于 2018-12-04
  • 来自专栏Java后端技术栈cwnait

    图解 | JVM的11个核心知识

    大家好,我是田哥 最近很多人都在面试,都在问如何快速复习JVM,本文就采用文字+图的形式来解说JVM,希望对你有所帮助。 第1组:JDK、JRE、JVM的关系 JDK中包含JRE,也包括JDK,而JRE也包括JDK。 范围关系:JDK>JRE>JVM。 具体见下图: 第2组:.java文件与.class文件的关系 这两者的关系需要两张图才能说明白: 第3组:class文件与JVM的关系 JVM通过类加载机制,把class文件装载进JVM中,然后JVM ❞ 第9组:对象的引用类型的关系 强引用:User user=new User();我们开发中使用最多的对象引用方式。 核心知识。

    69820编辑于 2022-04-19
  • 来自专栏IT架构圈

    『互联网架构』软件架构-JVM(下)(27)

    Class加载器 JVM结束生命周期: 1.System.exit() 直接就退出了 2.正常运行完 3.异常中止 4.手动kill进程 加载 1.取得类的二进制字节流,通过类的全限定名称(包名+类名 先初始化直接父类 3.如果类存在初始化语句,那就依次初始化语句 类的初始化 主动使用 new,创建类的实例对象 反射 调用类的静态方法 初始化类的子类,此时需要先要初始化父类 访问类中的静态变量或者给静态变量赋值 Jvm

    61520发布于 2019-03-18
  • 来自专栏全栈程序员必看

    JVM架构和GC垃圾回收机制(JVM面试不用愁)

    JVM架构和GC垃圾回收机制详解 一、JVM是什么? 二、JVM架构图分析 下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类、参数调优化) JVM被分为三个主要的子系统(1)类加载器子系统(2)运行时数据区 如上是JVM三大核心区域 2.4 PC寄存器 每个线程都有一个单独的PC寄存器来保存当前执行指令的地址,一旦该指令被执行,pc寄存器会被更新至下条指令的地址。 1、再次认识JVM运行时数据区 2、JVM内存结构图&详解堆内存溢出 JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation)、老年代(Old Generation),非堆内存就一个永久代 因此实际分配要考虑年老代和新生代的比例,考虑Eden和survives的比例 Permanent Generation中发生GC的时候也对性能影响非常大,也是Full GC 3、JVM GC时候核心参数

    66121编辑于 2022-08-11
  • 来自专栏IT架构圈

    『互联网架构』软件架构-JVM(上)(25)

    JVM JVM一些概念 什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的 JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。 JVM产品有哪些 HotSpot,Jrockit,J9 为什么出现JVM 1.C,C++是基于os架构,CPU架构。64位的版本在32位无法运行的。性能非常高,编写底层实现。 JVM运行时数据区 JVM在执行Java代码时都会把内存分为几个部分,即数据区来使用,这些区域都拥有自己的用途,并随着JVM进程的启动或者用户线程的启动和结束建立和销毁。 ? PS:梳理了JVM的概念,以及JVM和JDK的关系,为什么用JVMJVM的认识,JVM的运行流程,class文件被JVM执行引擎,加载到数据区中,编译到操作系统识别的指令,针对操作系统不同的指令。

    81930发布于 2019-03-18
  • 来自专栏程序员有故事

    大型网站技术架构(四)--核心架构要素

    此篇已收录至《大型网站技术架构:核心原理与案例分析》读书笔记系列,点击访问该目录获取完整内容。 而软件架构即“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计”。 一般来说软件架构需要关注性能、可用性、伸缩性、扩展性和安全性这5个架构要素。 ? 一些大型网站可以做到4个9以上的可用性,也就是99.99%。 扩展性 不同于其他架构要素主要关注非功能性需求,网站的扩展性架构直接关注网站的功能需求。网站快速发展,功能不断扩展,如何设计网站的架构使其能够快速响应需求变化,是网站可扩展架构的主要目标。 衡量网站架构扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不同产品之间是否很少耦合等。 网站可扩展架构的主要手段是事件驱动架构和分布式服务。

    1.4K80发布于 2018-06-07
  • 来自专栏IT架构圈

    『互联网架构』软件架构-JVM(中)(26)

    不同的对象引用类型, GC会采用不同的方法进行回收,JVM对象的引用分为了四种类型: 强引用:默认情况下,对象采用的均为强引用(这个对象的实例没有其他对象引用,GC时才会被回收) 软引用:软引用是Java

    60340发布于 2019-03-18
领券