加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

JVM难学?那是由于你没当真看完这篇文章

发布时间:2018-08-16 12:24:58 所属栏目:站长百科 来源:佚名
导读:技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战 一:假造机内存图解 JAVA措施运行与假造机之上,运行时必要内存空间。假造机执行JAVA措施的进程中会把它打点的内存分别为差异的数据地区利便打点。 假造机打点内存数据地区分别如下

单线程下无论栈帧太大照旧栈容量太小,及引用深度高出假造机应承深度城市抛出StackOverflowError每个要领压入栈的帧巨细是纷歧致的。多线程下当每个线程分派栈帧太大内存不可以或许扩展时抛出OutOfMemoryError非常线程栈帧越大,可建设的线程越少。

3.要领区参数

-XX:PermSize要领区内存最小值

-XX:MaxPermSize 要领区内存最大值

各个线程共享的内存地区,首要用来存储类的元数据、常量、静态变量、即时编译器编译后的代码等数据

例:-XX:PermSize=20M -XX:MaxPermSize=20M

非常范例 OutOfMemoryError :

缘故起因:常量过多,或署理反射等行使频仍

4.本机直接内存参数

-XX:MaxDirectMemorySize

例:-XX:MaxDirectMemorySize=10M

不敷时抛出OutOfMemory非常

四:垃圾网络算法

经典的垃圾接纳算法以下几种

 一、标志--破除算法(Mark-Sweep)

接纳前状态:

JVM难学?那是由于你没当真看完这篇文章

接纳后状态:

JVM难学?那是由于你没当真看完这篇文章

优弱点:

算法执行分为两个阶段标志与破除,全部的接纳算法,根基都

基于标志接纳算法做了深度优化

弱点:服从题目,内存空间碎片(不持续的空间)

二、复制算法(Copying)

接纳前状态:

Eden内存空间 8

JVM难学?那是由于你没当真看完这篇文章

Survivor1空间(From空间)1

JVM难学?那是由于你没当真看完这篇文章

Survivor2空间(To空间) 1

JVM难学?那是由于你没当真看完这篇文章

Eden内存空间与Survivor空间 8:1

JVM难学?那是由于你没当真看完这篇文章

接纳后状态:

JVM难学?那是由于你没当真看完这篇文章

Survivor1空间(From空间)1

JVM难学?那是由于你没当真看完这篇文章

Eden内存空间与Survivor空间 8:1

JVM难学?那是由于你没当真看完这篇文章

优弱点:

较量标志破除算法,停止了接纳造成的内存碎片题目,

弱点:以局部的内存空间捐躯为价钱,不外空间的挥霍较量小,默认8:1的比例1是挥霍的。

复制也有必然的服从与空间本钱

三、标志清算算法(Mark-Compact)

接纳前状态:

JVM难学?那是由于你没当真看完这篇文章

接纳后状态:

JVM难学?那是由于你没当真看完这篇文章

优弱点:

停止了,空间的挥霍,与内存碎片题目。

弱点:清算时复制有服从本钱。

五:垃圾网络器

一、七种垃圾网络器

(1) Serial(串行GC)-XX:+UseSerialGC

(2) ParNew(并行GC)-XX:+UseParNewGC

(3) Parallel Scavenge(并行接纳GC)

(4) Serial Old(MSC)(串行GC)-XX:+UseSerialGC

(5) CMS(并发GC)-XX:+UseConcMarkSweepGC

(6) Parallel Old(并行GC)-XX:+UseParallelOldGC

(7) G1(JDK1.7update14才可以正式商用)

JVM难学?那是由于你没当真看完这篇文章

二.1~3用于年青代垃圾接纳:年青代的垃圾接纳称为minor GC

三.4~6用于大哥代垃圾接纳(虽然也可以用于要领区的接纳):大哥代的垃圾接纳称为full GC

G1独立完成"分代垃圾接纳"

留意:并行与并发

并行:多条垃圾接纳线程同时操纵

并发:垃圾接纳线程与用户线程一路操纵

四、常用五种组合

Serial/Serial Old

ParNew/Serial Old:与上边对比,只是近年青代多了多线程垃圾接纳罢了

ParNew/CMS:当下较量高效的组合

Parallel Scavenge/Parallel Old:自动打点的组合

G1:最先辈的网络器,可是必要JDK1.7update14以上

五. Serial/Serial Old

年青代Serial网络器回收单个GC线程实现"复制"算法(包罗扫描、复制)

大哥代Serial Old网络器回收单个GC线程实现"标志-清算"算法

Serial与Serial Old城市停息全部用户线程(即STW)

声名:

STW(stop the world):编译代码时为每一个要领注入safepoint(要领中轮回竣事的点、要领执行竣事的点),在停息应用时,必要守候全部的用户线程进入safepoint,之后停息全部线程,然后举办垃圾接纳。

合用场所:

CPU核数<2,物理内存<2G的呆板(简朴来讲,单CPU,新生代空间较小且对STW时刻要求不高的环境下行使)

-XX:UseSerialGC:逼迫行使该GC组合

-XX:PrintGCApplicationStoppedTime:查察STW时刻

六.ParNew/Serial Old:

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读