JVM
文章平均质量分 54
coldice0521
主要负责网站,软件整体构架
展开
-
深入研究JVM垃圾回收器-G1
敬请期待原创 2021-01-03 22:26:35 · 98 阅读 · 0 评论 -
深入理解Java虚拟机-第3章-垃圾收集器
JVM的垃圾收集器经历了多代的发展,从单线程收集器到多线程收集器。一、背景垃圾回收器经历过多代的发展,从单线程到多线程,垃圾收集器的大家族产品如下,每一个连线表示可以组合使用。接下来大概分为几个阶段详细介绍下各个垃圾回收器的特点:阶段收集器名称区域并行/串行/并发算法优缺点适用场景第一阶段Serial新生代串行复制响应速度快单CPU环境下的Client模式Serial Old老年代串行标志-整理响应速度快单CPU环境下的Client.原创 2021-01-03 22:22:11 · 128 阅读 · 0 评论 -
深入理解Java虚拟机-第3章-垃圾收集与内存分配策略
Java与C++之间有一堵由内存动态分配与垃圾回收技术做围成的“高墙”,墙外的人想进去,墙里的人想出去。一、内存分配算法创建对象时,需要分配对象,常用的内存分配方式有两种:指针碰撞和空闲链表法指针碰撞:如果堆内存都是规整的,并且使用的内存都放在一边,空闲的内存都放在一边,中间放着一个指针作为分界点的指示器,那么分配内存仅仅是将指针往空闲的区域挪一下。空闲链表法:针对不连续的内存空间,将空闲的内存空间用链表组织起来,用内存的时候从空闲链表上申请分配内存。使用指针碰撞法的垃圾回收器,Seri.原创 2021-01-03 18:00:11 · 125 阅读 · 0 评论 -
每天学习一个linux命令:jmap命令
jmap是分析Java堆的有效工具,可以查看堆的设置和当前堆各个区域的状态。一、命令格式1.1 jmap -heap命令执行如下命令 打印堆的汇总信息:jmap -heap 进程Id打印的信息如下:Attaching to process ID 119130, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.101-b13using thread-l.原创 2021-01-03 15:07:26 · 918 阅读 · 3 评论 -
深入理解Java虚拟机-第2章-JVM内存模型
本章主要是学习下JVM的内存模型,在JDK1.8之前存在Perm,在JDK1.8的时候将perm进行拆分,常量池转移到堆空间,Class等元数据放到了metasapce。一、内存结构二、堆原创 2020-12-28 23:53:49 · 126 阅读 · 0 评论 -
深入理解Java虚拟机-第6章-类文件结构
本章从Class文件的结构入手,学习Java虚拟机的一次编译,到处运行的魅力一、前言在虚拟机未出现以前,计算机的世界里只认识0和1,如果程序想要在计算机上运行,首先需要编译成机器的汇编语言,然后计算机根据自身系统的指令集解释成指令编码进行运行。Java虚拟机想做成两件事:平台无关性和语言无关性。平台无关性是指无论在什么平台上,什么指令集上,对上层使用者来说这种差异都是无感知的,由虚拟机去完成不同平台指令集和架构的兼容。使用者只需按照虚拟机规定的文件 格式进行输入要运行的信息。语言无关性是指J.原创 2020-12-27 22:26:33 · 231 阅读 · 0 评论 -
JVM源码分析:Java对象模型(OOP-Klass模型),Java对象在JVM中的表现形式
jvm环境:openJdk15_20的hotspot一、问题背景当我们在java程序中,使用new创建一个对象时,是否考虑过或者知道这个对象在JVM中是如何表示的?它占用的内存大小是多少?class A { int a;}public static void main(String[] args) { A a = new A();}二、Java对象模型-OOP-Klass在JVM中,Hotspot并没有将Java对象映射成C++对象,而是实现了Java的对象模型(OOP-Klass.原创 2020-09-07 21:30:17 · 856 阅读 · 1 评论 -
JVM调优参数: -Xms -Xmx -Xmn -Xss
简单记录下JVM一些重要的调优参数,防止遗忘。-Xms :设置JVM堆最小内存,此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。例如:-Xms1024m。-Xmx :设置JVM堆最大可用内存,例如:-Xmx1024m-Xmn :设置JVM堆中新生代的内存大小,Sun官方推荐配置为整个堆大小的3/8。-Xss:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生.原创 2020-09-06 20:02:13 · 607 阅读 · 0 评论