![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
Ming339456
李先生的笔记
展开
-
jvm:垃圾回收器GC搭配推荐及其常用调优参数
Mark笔记:由于java11中ZGC的出现,希望大家别对GC调优的研究下太多功夫,对未来来说,这是贬值的新生代垃圾收集器种类:老年代垃圾回收器种类:其中G1是概括了新生代和老年代,没有分的那么明显,也就是说,G1的新生代和老年代都是使用G1这个垃圾收集器解释一下图中所说的在垃圾回收器中的并行和并发分别指的是什么并行: 垃圾回收操作的多个线程同时进行并发:进行垃圾...原创 2018-12-19 17:22:18 · 1696 阅读 · 0 评论 -
jvm:堆、栈、新生代、方法区(永久代/元空间)配置命令、直接内存大小配置,jdk1.8
Mark笔记:堆:-Xms:堆的最小值也可以称初始值;-Xmx:堆的最大值;栈:-Xss:栈大小;新生代:如果同时配置,优先级如下:高:-XX:NewSize/MaxNewSize中间 -Xmn (NewSize= MaxNewSize)低:-XX:NewRatio 表示比例,例如=2,表示 新生代:老年代 = 1:2方法区(永久代/元空间):jd...原创 2018-12-19 17:34:07 · 1985 阅读 · 0 评论 -
jvm:内存分配与回收策略 -(老年代年龄配置参数)
Mark笔记:对象优先在Eden分配,如果说Eden内存空间不足,就会发生Minor GC大对象直接进入老年代,大对象:需要大量连续内存空间的Java对象,比如很长的字符串和大型数组,1、导致内存有空间,还是需要提前进行垃圾回收获取连续空间来放他们,2、会进行大量的内存复制。-XX:PretenureSizeThreshold 参数 ,大于这个数量直接在老年代分配,缺省为0 ,表示绝不...原创 2018-12-19 18:31:31 · 813 阅读 · 0 评论 -
jvm-JDK中监控生产环境的指令及工具
MARK笔记:jps 列出当前机器上正在运行的虚拟机进程-p :仅仅显示VM 标示,不显示jar,class, main参数等信息.-m:输出主函数传入的参数. 下的hello 就是在执行程序时从命令行输入的参数-l: 输出应用程序主类完整package名称或jar完整名称.-v: 列出jvm参数, -Xms20m -Xmx50m是启动程序指定的jvm参数 jst...原创 2018-12-27 23:08:40 · 398 阅读 · 0 评论 -
jvm:优化-栈上分配
转载请注明博客来处:https://blog.csdn.net/qq_42709262/article/details/84800251 几乎所有的对象实例,都是在堆上分配的,但存在部分例外,栈上分配就是这种除了堆上分配的例外。1.栈上分配指的是什么?①将线程中的私有对象打散(即图中user),让它在栈上分配,而不是在堆上分配比如方法中的user引用,就是方法的局部变量,new...原创 2018-12-17 17:49:11 · 6574 阅读 · 0 评论 -
jvm:虚拟机中的对象
Mark笔记:虚拟机遇到一条new指令时:1)先执行相应的类加载过程。2)接下来虚拟机将为新生对象分配内存。为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。如果Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪动一段与对象大小相等的距离,这种分...原创 2018-12-17 17:59:01 · 230 阅读 · 0 评论 -
类加载器-双亲委派模型
从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;第一种就是所有其他的类加载器,这些类加载器都由Java语言实现,独立于虚拟机外部,并且全都继承自抽象类java.lang.ClassLoader。启动类加载器(Bootstrap ClassLoader):这...原创 2019-03-13 19:38:19 · 110 阅读 · 0 评论 -
Class文件结构及指令解读
摘选《深入理解JAVA虚拟机》部分内容以及自身的理解:Class类的本质任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,Class文件实际上它并不一定以磁盘文件的形式存在。Class文件是一组以8位字节为基础单位的二进制流。Class文件格式各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容...原创 2019-03-13 19:42:06 · 306 阅读 · 0 评论 -
JVM-JIT优化
Hotspot热点编译的概念对于程序来说,通常只有一部分代码被经常执行,这些关键代码被称为应用的热点,执行的越多就认为是越热。将这些代码编译为本地机器特定的二进制码,可以有效提高应用性能。选择编译器类型-server,更晚编译,但是编译后的优化更多,性能更高-client,很早就开始编译-XX:+TieredCompilation,开启分层编译,可以让jvm在启动时启用cl...原创 2019-03-13 20:13:18 · 922 阅读 · 0 评论