![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
文章平均质量分 81
JVM
if200
开发
展开
-
Xloggc实践(JVM1.8及之前)
Java服务器服务器调优免不了要对gc日志就行分析,我一般是使用GCEasy上传gc日志文件分析的,一般希望gc日志文件在不能丢失(但允许超过一定时间或大小被清理掉)的情况下控制gc日志的大小或者按时间切割,即像Java日志框架那样的效果。Java9对jvm的日志系统进行了比较大的升级,可以比较好的实现这些需求,但大部分服务端的Java软件还只支持Jdk8,本文记录作者自己的相关配置。首先推荐看两篇gceasy的博客文章,网上对UseGCLogFileRotation的相关讨论很多都来自于这里:http原创 2020-08-20 00:55:34 · 6952 阅读 · 0 评论 -
JVM逃逸分析
摘要: 本文基于周志明著作的《深入了解Java虚拟机》主要介绍了逃逸分析的定义,以及逃逸分析的一些应用,方便复习 逃逸分析(Escape Analysis)是目前Java虚拟机中比较前沿的优化技术。定义逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他地方中,称为方法逃逸。例如:public static St...转载 2018-03-31 11:04:17 · 254 阅读 · 0 评论 -
JVM内存空间
图解结构JVM基本结构图 《深入理解Java虚拟机(第二版)》中的描述 结构介绍Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对数据进行了不同空间的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。具体划分为如下5个内存空间:(非常重要)线程共享 程序计数器: 存放下一条指令java虚拟机栈: 存放java函数调用堆栈信息本地方...原创 2018-03-31 15:41:34 · 205 阅读 · 0 评论 -
Java内存模型和volatile详解
一.Java内存模型概述Java内存模型即Java Memory Model,简称JMM。 Java内存模型描述了在多线程代码中哪些行为是合法的,以及线程如何通过内存进行交互。 它描述了“程序中的变量“ 和 ”从内存或者寄存器获取或存储它们的底层细节”之间的关系。Java内存模型通过使用各种各样的硬件和编译器的优化来正确实现以上事情。Java包含了几个语言级别的关键字,包括:volat...原创 2018-04-02 15:20:57 · 787 阅读 · 0 评论 -
JVM体系结构与GC调优
1.JVM体系结构概述 2.GC算法分类:引用计数法:每个对象维护一个引用计数器记录其被引用数,当被引用数为0时即可回收 跟踪法(可达性分析算法):从GC Roots出发向下搜索,不可达的对象即可回收 GC Roots对象: 虚拟机栈(栈帧中的本地变量表)中引用的对象本地方法栈中JNI(即native方法)引用的对象方法区中类静态属性引用的对象方法区中常量引用...原创 2018-04-10 22:35:15 · 335 阅读 · 0 评论 -
类加载机制
1.什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。 类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 类加载器并不需要等到某个类被“首次主...转载 2018-04-12 09:44:03 · 241 阅读 · 0 评论