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

    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
  • 来自专栏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
  • 来自专栏悠扬前奏的博客

    JVM-7.JVM 性能监控 jdk命令

    JVM-7.JVM 性能监控 jdk命令 常见监控和故障处理工具 名称 描述 jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程 jstat JVM Statistics jinfo Configuration Info for Java,显示虚拟机配置信息 jmap Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件) jhat JVM : 选项 作用 -q 输出LVMID,省略主类的名称 -m 输出虚拟机进程启动时传给主类main()函数的参数 -l 输出主类的全名,如果进程执行的是jar包,输出Jar路径 -v 输出虚拟机启动时的JVM 参数 2. jstat:虚拟机统计信息监视工具 jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的工具。 : jstack [ option ] vmid 选项: 选项 作用 -F 当正常请求不被响应时,强制输出线程堆栈 -l 除堆栈外,显示关于锁的附加信息 -m 如果调用本地方法,显示C/C++堆栈 7.

    94320发布于 2019-05-29
  • 来自专栏Java技术圈子

    JVM内存架构简述

    运行时数据区 运行时数据区绝对是JVM重中之重,因为业务中常用的内存调优就是在这个部分进行的 首先复习一下jvm的组成部分,中间这一块就是运行时数据区了, 数据区广义上可以分成两部分,堆和栈,其中栈是不会产生垃圾的 之前的文章已经写过几篇类加载器的内容了,这一篇解释,当类以内存的形式加载进jvm后,是怎么被使用的。 本地方法栈 JVM 中的栈包括 Java 虚拟机栈和本地方法栈,两者的区别就是,Java 虚拟机栈为 JVM 执行 Java 方法服务,本地方法栈则为 JVM 使用到的 Native 方法服务。 设置方法区大小jdk7及以前: -XX:PermSize来设置永久代初始分配空间。默认值是20.75M -XX:MaxPermSize来设定永久代最大可分配空间。 对于一个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系列第7讲:JVM 类加载机制

    验证 当 JVM 加载完 Class 字节码文件并在方法区创建对应的 Class 对象之后,JVM 便会启动对该字节码流的校验,只有符合 JVM 字节码规范的文件才能被 JVM 正确执行。 这个校验过程大致可以分为下面几个类型: JVM规范校验。JVM 会对字节流进行文件格式校验,判断其是否符合 JVM 规范,是否能被当前版本的虚拟机处理。 解析 当通过准备阶段之后,JVM 针对类或接口、字段、类方法、接口方法、方法类型、方法句柄和调用点限定符 7 类引用进行解析。 JVM系列目录 JVM系列开篇:为什么要学虚拟机? JVM系列第1讲:Java 语言的前世今生 JVM系列第2讲:Java 虚拟机的历史 JVM系列第3讲:到底什么是虚拟机? JVM系列第4讲:从源代码到机器码,发生了什么? JVM系列第5讲:字节码文件结构 JVM系列第6讲:Java 虚拟机内存结构 JVM系列第7讲:JVM 类加载机制 ----

    84130发布于 2018-11-21
  • 来自专栏一个会写诗的程序员的博客

    JVM 核心知识点

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

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

    Dubbo核心架构

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

    64330发布于 2020-02-24
  • 来自专栏支付进阶之路

    支付系统7核心模块子域系统架构

    今天串讲支付系统的7核心子域/模块,包括收单结算,资金产品,收银支付,渠道网关,会员平台,商户平台,账务中心等。 简明产品架构图 说明: 这个图画得比较简单,但是已经涵盖一个支付系统最核心的产品能力。 上面部分是会员或商户感知的产品能力,包括门户、收银台,收单产品,资金产品等。 下面部分是支付系统最核心的服务,用于支撑对外的产品能力。 1.2. 极简系统架构图 说明: 这个图很精简,但是已经能够说清楚支付系统最核心的模块划分。 7. 商户平台 管理商户的入驻、登录、交易管理等。 商户平台负责管理商户的生命周期,包括入驻签约、KYB、交易管理等。 8. 账务中心 资金账务:负责账户开立,记账等。 结束语 上面画的只是逻辑架构,顶多算是PPT架构师或画图架构师,离真正的落地还很远,不过对于讲清楚支付整体结构,抓住主要脉络是已经足够的。 本文作者“隐墨星辰”,深耕境内/跨境支付架构设计十余年。

    96410编辑于 2025-12-24
  • 来自专栏云深之无迹

    Julia机器核心编程.7

    可以说,无论是R(data.frame)还是Python(Pandas)中的表格都是统计计算中最重要和最常用的数据类型。这是因为真实世界中的数据大多是表格式的,不能用简单的DataArray来表示。

    80920发布于 2020-08-26
  • 来自专栏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
  • 来自专栏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

    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中,然后JVM7组:Survivor与Eden的关系 对于这两者,最重要的是要明白为什么需要Survivor区?只有Eden不行吗? 核心知识。

    69820编辑于 2022-04-19
  • 来自专栏惊羽-布壳儿

    jdk(7) - JVM垃圾回收机制

    GC ROOT , 通过引用标记来识别哪些是垃圾 GC ROOT 范围 : 被栈中声明引用的,被方法区内静态变量声明引用的 等

    58610编辑于 2022-06-15
  • 来自专栏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寄存器会被更新至下条指令的地址。 因此实际分配要考虑年老代和新生代的比例,考虑Eden和survives的比例 Permanent Generation中发生GC的时候也对性能影响非常大,也是Full GC 3、JVM GC时候核心参数 结果就是整个Eden占用了新生代5/7,From和To分别占用了1/7,如果分配不合理,Eden太大,这样产生对象很顺利,但是进行GC有一部分对象幸存下来,拷贝到To,空间小,就没有足够的空间,对象会被放在

    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个架构要素。 ? 几乎所有网站都承诺7×24小时可用,但事实上任何网站都不可能达到完全的7×24,总会有一些故障时间,扣除这些故障时间,就是网站的可用时间。一些大型网站可以做到4个9以上的可用性,也就是99.99%。 扩展性 不同于其他架构要素主要关注非功能性需求,网站的扩展性架构直接关注网站的功能需求。网站快速发展,功能不断扩展,如何设计网站的架构使其能够快速响应需求变化,是网站可扩展架构的主要目标。 衡量网站架构扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不同产品之间是否很少耦合等。 网站可扩展架构的主要手段是事件驱动架构和分布式服务。

    1.4K80发布于 2018-06-07
领券