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

    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,自动扩容)导致的。

    1.9K40发布于 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将与本机方法库进行交互,并提供执行引擎所需的本机库。

    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核心库的类型安全。

    40030发布于 2018-08-20
  • 来自专栏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也有一个堆区域。由于方法和堆区域共享多个线程的内存,因此所存储的数据非线程安全。

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

    JVM内存架构简述

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

    44130编辑于 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的内存了。

    53920发布于 2021-05-19
  • 来自专栏架构随笔录

    Dubbo核心架构

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

    58530发布于 2020-02-24
  • 来自专栏一个会写诗的程序员的博客

    JVM 核心知识点

    想要提高程序员自身的内功心法无非就是: 数据结构跟算法 + 操作系统 + 网络 ,而所有的Java代码都是在JVM上运行的,了解了JVM好处就是: 写出更好更健壮的代码。 1、简述JVM 内存模型 ? 从宏观上来说JVM 内存区域 分为三部分 线程共享区域 、 线程私有区域 、 直接内存区域 。 1.1、线程共享区域 1.1.1、堆区 堆区Heap是JVM中最大的一块内存区域,基本上所有的对象实例都是在堆上分配空间。 即:移除永久代是为融合HotSpot JVM与 JRockit VM而做出的努力,因为JRockit没有永久代,不需要配置永久代。 4、GC流程 核心思想就是 根据各个年代的特点不同选用不同到垃圾收集算法 。 年轻代 :使用 复制算法 老年代 : 使用 标记整理 或者 标记清除 算法。

    82941发布于 2021-03-22
  • 来自专栏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.8K80发布于 2018-02-12
  • 来自专栏Android知识点总结

    01--Java核心JVM引入篇

    3.在JRE上,JVM读.class文件并操做计算机的输出流,给你打出了"Hello World"。 ) JVM: Java虚拟机(Java Virtual) Machine。 jdk-jre-jvm.png 5.历史上的java虚拟机类型 虚拟机即:虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的 JVM只是一种用于计算设备的规范,广义来说相当于一个接口 ,而接口的实现可以不同,但都能起到JVM的作用 Java发展至今JVM也有过更新迭代,也有基于不同场景下使用的JVM Sun Classic VM 第一款商用Java 虚拟机,纯解释器方式执行java windows----平台专用(已退出历史舞台) Taobao VM 淘宝根据HotSpot VM定制 Dalvik 安卓虚拟机,寄存器架构,执行.dex文件(.class-->.dex) 6.java

    40830发布于 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 只有当 JVM 认为内存不足时,才会去试图回收软引用指向的对象:即JVM 会确保在抛出 OutOfMemoryError 之前,清理软引用指向的对象。 核心知识。

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

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

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

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

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

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

    1.3K80发布于 2018-06-07
  • 来自专栏Greenplum

    Greenplum 架构核心引擎

    Greenplum 架构核心引擎 Greenplum 架构核心引擎 1 学习地址 2 1 Greenplum 架构概述 2 1.1 概述简介 2 1.2 MPP无共享静态拓扑 3 1.3 集群内数据分两类 2.9 QE各司其职 11 2.10 QE状态管理 12 2.11 QD返回查询结果给客户端 12 3 Greenplum 主要设计思考 13 3.1 继承自PostgreSQL的设计 13 3.2 主从架构 p=1 1 Greenplum 架构概述 1.1 概述简介 ODBC与JDBC都是基于标准的SQL来执行的,支持很好的第三方工具 1.2 MPP无共享静态拓扑 master与standby master QE之间没有libpq链接 2.11 QD返回查询结果给客户端 1、最终QD将查询的结果返回给客户端 3 Greenplum 主要设计思考 3.1 继承自PostgreSQL的设计 3.2 主从架构

    1.6K30发布于 2020-02-28
  • Claude Code 核心架构参考

    JetBrains) 处理人类输入、Deep Link 远程唤醒与语音指令 02 界面层 Ink 渲染器 / Commander.js / REPL 实现终端内的 React 组件化布局与斜杠命令解析 03 核心引擎 2.0 / 遥测 (OTEL) 提供模型请求、身份认证与全局链路追踪 06 外部层 Claude API / MCP 外部服务器 / OS Shell 最终的模型推理输出与物理文件系统操作 二、 核心子系统深度解析 五、 启动时序与性能优化 为了抵消 Bun 加载重型模块的延迟,系统采用了极致的并行策略: T1 (并行阶段): 在导入核心模块时,同步触发 macOS Keychain 预取与 API 预连接。 六、 核心技术栈总结 (Tech Stack) 类别 选用技术 核心优势 Runtime Bun 极速启动,原生支持 bun:bundle 编译期死代码消除 Logic TypeScript 50 万行规模下的端到端类型安全与架构稳定性

    81010编辑于 2026-04-01
  • 来自专栏编码前线

    Httpclient核心架构设计

    整体架构 对于简单应用,HttpURLConnection完全可以满足。但是对于1)系统复杂度高,2)性能要求高,3)可靠性要求也高的应用,则需要一个更强大的组件。 ? 调优方向 了解了架构原理后,就可以着手在3个方向进行调优: 1. 连接数,通过设立全局最大连接数和单route连接数,增加吞吐能力。

    1.3K30发布于 2018-10-18
  • 来自专栏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执行引擎,加载到数据区中,编译到操作系统识别的指令,针对操作系统不同的指令。

    72930发布于 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时候核心参数

    58621编辑于 2022-08-11
  • 来自专栏Snova最佳实践系列

    Snova架构篇(一):Greenplum MPP核心架构

    本节主要从MPP架构入手,结合gp核心架构设计理念为深入理解snova打基础。 https://doc.huodongjia.com/detail-3839.html Hashdata 简丽荣 目录: Postgresql基础 Greenplum数仓平台概览 Greenplum核心架构设计 出一个子进程Postgres Server来处理来自这个连接的查询语句 Postgres Server进程的功能组件可以分成两大类:查询执行和存储管理 2.gp数仓平台概览 大致上可以分为四层:从下至上依次为 核心架构层 图片.png 服务层 [表格] 产品特性 图片.png 客户端访问和工具 图片.png 3.核心架构设计:MPP无共享架构 图片.png 图片.png 主从节点,主节点负责协调整个集群 一个数据节点可以配置多个节点实例 非常适合向量计算、JIT架构。对大批量数据的访问和统计,效率更高。 读取很多列时,由于需要访问更多的文件,成本更高。例如查询明细。

    4.6K10发布于 2019-12-23
  • 来自专栏IT架构圈

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

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

    55440发布于 2019-03-18
领券