JVM 常见参数设置 内存设置 参数 -Xms:初始堆大小,JVM 启动的时候,给定堆空间大小. -Xmx:最大堆大小,如果初始堆空间不足的时候,最大可以扩展到多少. -Xmn:设置年轻代大小.整个堆大小 = 年轻代大小 + 年老代大小 + 持久代大小.持久代一般固定大小为 64M,所以增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun 官方推荐配置为整个堆的 3/8. -Xss: 设置每个线程的 Java 栈大小.JDK 5 后每个线程 Java 栈大小为 1M.在相同物理内存下…
1.  前言 这一版块内容比较多,分为两篇文章来做笔记.本文讲述上半部分垃圾收集部分;下一篇文章写内存分配部分. 概述 对象已死吗? 引用技术算法 可达性分析算法 再谈引用 两次标记 回收方法区 2.    垃圾收集器与内存分配策略 2.1  概述 对于垃圾回收机制(Garbage Collection,GC),需要思考以下三个问题: 哪些内存需要回收? 什么时候回收? 如何回收? 2.2  对象已死吗? 堆里面存放着Java中几乎所有的对象实例,垃圾收集器在对堆进行回收前,首先要做的当然是判断…
一JVM结构 1 Java内存结构 JVM内存结构主要有三大块:堆内存.方法区和栈. 堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间.From Survivor空间.To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配: 方法区存储类信息.常量.静态变量等数据,是线程共享的区域,为与Java堆区分,方法区还有一个别名Non-Heap(非堆): 栈又分为java虚拟机栈和本地方法栈主要用于方法的执行. 2 各区域内存大小 3 控制参数 -…
From:  https://c.m.163.com/news/a/D7B0C6Q40511PFUO.html?spss=newsapp&fromhistory=1 Java虚拟机性能监控与调优实战 酷客创意网01-04 20:37跟贴 7 条 本文针对Java虚拟机对程序性能影响,通过设置不同的Java虚拟机参数来提升程序的性能.首先从Java虚拟机各个性能方面来进行监控,找出Java虚拟机中可能对程序性能影响较大的,然后先通过小实验来证明对程序性能的影响,确定了对程序性能影响较大的指标.最后…
一.垃圾收集器的分类 1.次收集器 Scavenge GC,指发生在新生代的GC,因为新生代的Java对象大多都是朝生夕死,所以Scavenge GC非常频繁,一般回收速度也比较快.当Eden空间不足以为对象分配内存时,会触发Scavenge GC. 一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,对Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区.然后整理Survivor的两个区.这种方式的GC是对年轻代的Eden区进行…
Java内存区域 对比与C和C++,Java程序员不需要时时刻刻在意对象的创建和删除过程造成的内存溢出.内存泄露等问题,Java虚拟机很好地帮助我们解决了内存管理的问题,但深入理解Java内存区域,有助于帮我们理解Java虚拟机到底是如何解决内存问题,如果出现了内存泄露或内存溢出等方面的问题,我们也可以找到问题的解决方案. Java内存区域划分 Java虚拟机在执行Java程序的过程中,会把它管理的内存划分成若干个数据区域.有的区域随着虚拟机进程启动而存在,有的区域则是依赖用户线程的启动和结束而…
1 基于JDK命令行工具的监控 1.1 JVM的参数类型 1.1.1 标准参数 在JVM的各个版本基本上保持不变,很稳定的. -help -server -client -version -showversion -cp -classpath 1.1.2 X参数 非标准化参数 -Xint: 解释执行 -Xcomp: 第一次使用就编译成本地代码 -Xmixed: 混合模式,JVM自己来决定是否编译成本地代码 1.1.3 XX参数 非标准化参数 相对不稳定 主要用于JVM调优和Debug Boole…
以下配置主要针对分代垃圾回收算法而言. 一.堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制.在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m. 典型设置: java -Xmx3550m -Xms3550m -Xmn2g –Xss128k -Xmx35…
1. Java虚拟机所管理的内存 2. 对象创建过程 3. GC收集 4. HotSpot算法的实现 5. 垃圾收集器 6. 对象分配内存与回收细节 7. 类文件结构 8. 虚拟机类加载机制 9.类加载器 1. Java虚拟机所管理的内存 JVM在执行java程序的时候,它所管理的内存大致被划分为以下几种数据区域: 1.程序计数器(Program Counter Register)                                                         …
目录 判断对象是否死亡 引用计数器算法 可达性分析算法 各种引用 回收方法区 垃圾收集算法 标记-清除算法 复制算法 标记-整理算法 分代收集算法 HotSpot算法实现 枚举根节点 GC停顿(Stop The World) 安全点 垃圾收集器 Serial 收集器 ParNew 收集器 Parallel Scanvenge 收集器 CMS 收集器 G1 收集器 新生代.老年代 和 永久代(元空间) 新生代 老年代 永久代(元空间) Minor GC.Major GC 和 Full GC 何时执…