当前位置: 首页 > news >正文

网站建设修改建议软文的目的是什么

网站建设修改建议,软文的目的是什么,专门帮做ppt的网站吗,推广文章堆(Heap)的核心概述 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区…

堆(Heap)的核心概述

堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。

一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。

Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。

  • 堆内存的大小是可以调节的。

《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。

所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)。

《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。(The heap is the run-time data area from which memory for all class instances and arrays is allocated

数组和对象可能永远不会存储在栈上,因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置。

在方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集的时候才会被移除。

堆,是GC(Garbage Collection,垃圾收集器)执行垃圾回收的重点区域。

堆内存细分 

Java 7及之前堆内存逻辑上分为三部分:新生区+养老区+永久区

  • Young Generation Space 新生区 Young/New 又被划分为Eden区和Survivor区
  • Tenure generation space 养老区 Old/Tenure
  • Permanent Space 永久区 Perm

Java 8及之后堆内存逻辑上分为三部分:新生区+养老区+元空间

  • Young Generation Space 新生区 Young/New 又被划分为Eden区和Survivor区
  • Tenure generation space 养老区 Old/Tenure
  • Meta Space 元空间 Meta

约定:新生区(代)<=>年轻代 、 养老区<=>老年区(代)、 永久区<=>永久代

堆空间内部结构(JDK7)

堆空间内部结构(JDK8) 

设置堆内存大小与OOM 

堆空间大小的设置

Java堆区用于存储Java对象实例,那么堆的大小在JVM启动时就已经设定好了,可以通过选项"-Xmx"和"-Xms"来进行设置。

  • “-Xms"用于表示堆区的起始内存,等价于-XX:InitialHeapSize
  • “-Xmx"则用于表示堆区的最大内存,等价于-XX:MaxHeapSize

一旦堆区中的内存大小超过“-Xmx"所指定的最大内存时,将会抛出OutOfMemoryError异常。

通常会将-Xms和-Xmx两个参数配置相同的值,其目的是为了能够在ava垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小,从而提高性能。

默认情况下

  • 初始内存大小:物理电脑内存大小 / 64
  • 最大内存大小:物理电脑内存大小 / 4

OutOfMemory举例 

public class OOMTest {public static void main(String[]args){ArrayList<Picture> list = new ArrayList<>();while(true){try {Thread.sleep(20);} catch (InterruptedException e){e.printStackTrace();}list.add(new Picture(new Random().nextInt(1024*1024)));}}
}

Exception in thread "main" java.lang.OutofMemoryError: Java heap space
    at com.atguigu. java.Picture.<init>(OOMTest. java:25)
    at com.atguigu.java.O0MTest.main(OOMTest.java:16) 

年轻代与老年代 

存储在JVM中的Java对象可以被划分为两类:

  • 一类是生命周期较短的瞬时对象,这类对象的创建和消亡都非常迅速
  • 另外一类对象的生命周期却非常长,在某些极端的情况下还能够与JVM的生命周期保持一致

Java堆区进一步细分的话,可以划分为年轻代(YoungGen)和老年代(oldGen)

其中年轻代又可以划分为Eden空间、Survivor0空间和Survivor1空间(有时也叫做from区、to区)

 

下面这参数开发中一般不会调: 

配置新生代与老年代在堆结构的占比。

  • 默认-XX:NewRatio=2,表示新生代占1,老年代占2,新生代占整个堆的1/3
  • 可以修改-XX:NewRatio=4,表示新生代占1,老年代占4,新生代占整个堆的1/5

在HotSpot中,Eden空间和另外两个survivor空间缺省所占的比例是8:1:1

当然开发人员可以通过选项“-xx:SurvivorRatio”调整这个空间比例。比如-xx:SurvivorRatio=8

几乎所有的Java对象都是在Eden区被new出来的。绝大部分的Java对象的销毁都在新生代进行了。

  • IBM公司的专门研究表明,新生代中80%的对象都是“朝生夕死”的。

可以使用选项"-Xmn"设置新生代最大内存大小,这个参数一般使用默认值就可以了

 

图解对象分配过程 

 为新对象分配内存是一件非常严谨和复杂的任务,JVM的设计者们不仅需要考虑内存如何分配、在哪里分配等问题,并且由于内存分配算法与内存回收算法密切相关,所以还需要考虑GC执行完内存回收后是否会在内存空间中产生内存碎片。

A.new的对象先放伊甸园区。此区有大小限制。

B.当伊甸园的空间填满时,程序又需要创建对象,JVM的垃圾回收器将对伊甸园区进行垃圾回收(MinorGC),将伊甸园区中的不再被其他对象所引用的对象进行销毁。再加载新的对象放到伊甸园区

C.然后将伊甸园中的剩余对象移动到幸存者0区。

D.如果再次触发垃圾回收,此时上次幸存下来的放到幸存者0区的,如果没有回收,就会放到幸存者1区。

F.如果再次经历垃圾回收,此时会重新放回幸存者0区,接着再去幸存者1区。

G.什么时候能去养老区呢?可以设置次数。默认是15次。

    • 可以设置参数:进行设置-Xx:MaxTenuringThreshold= N

H.在养老区,相对悠闲。当养老区内存不足时,再次触发GC:Major GC,进行养老区的内存清理

若养老区执行了Major GC之后,发现依然无法进行对象的保存,就会产生OOM异常。

java.lang.OutofMemoryError: Java heap space

  • 针对幸存者s0,s1区的总结:复制之后有交换,谁空谁是to,交换以后标记++。到15以后跑到老年区
  • 关于垃圾回收:频繁在新生区收集,很少在老年代收集,几乎不再永久代和元空间进行收集

文章转载自:
http://misreckon.c7513.cn
http://cuticle.c7513.cn
http://microbar.c7513.cn
http://gaucho.c7513.cn
http://nephrogenic.c7513.cn
http://christianly.c7513.cn
http://dragoman.c7513.cn
http://prestigious.c7513.cn
http://gemmuliferous.c7513.cn
http://persuasible.c7513.cn
http://problemist.c7513.cn
http://frederic.c7513.cn
http://spencer.c7513.cn
http://divinely.c7513.cn
http://alae.c7513.cn
http://whippoorwill.c7513.cn
http://ineffectually.c7513.cn
http://yeh.c7513.cn
http://contranatant.c7513.cn
http://costectomy.c7513.cn
http://preediting.c7513.cn
http://bans.c7513.cn
http://bambino.c7513.cn
http://sinarquist.c7513.cn
http://feminist.c7513.cn
http://encephalograph.c7513.cn
http://doffer.c7513.cn
http://supper.c7513.cn
http://lim.c7513.cn
http://honour.c7513.cn
http://tay.c7513.cn
http://chairmanship.c7513.cn
http://annunciatory.c7513.cn
http://chilopod.c7513.cn
http://forenotice.c7513.cn
http://dopplerite.c7513.cn
http://aeroplankton.c7513.cn
http://halitosis.c7513.cn
http://upwardly.c7513.cn
http://cyclopedist.c7513.cn
http://mock.c7513.cn
http://dominant.c7513.cn
http://reformative.c7513.cn
http://theophobia.c7513.cn
http://subadolescent.c7513.cn
http://sentential.c7513.cn
http://photoreconnaissance.c7513.cn
http://prochronism.c7513.cn
http://adopter.c7513.cn
http://polyspermy.c7513.cn
http://scheduler.c7513.cn
http://duckstone.c7513.cn
http://austrian.c7513.cn
http://plagiocephalism.c7513.cn
http://clysis.c7513.cn
http://natch.c7513.cn
http://pub.c7513.cn
http://odorimeter.c7513.cn
http://loaner.c7513.cn
http://spleenful.c7513.cn
http://cachepot.c7513.cn
http://promiscuous.c7513.cn
http://newsless.c7513.cn
http://onr.c7513.cn
http://guildsman.c7513.cn
http://lykewake.c7513.cn
http://unlimitedly.c7513.cn
http://bunchberry.c7513.cn
http://guanine.c7513.cn
http://overdriven.c7513.cn
http://ontogenic.c7513.cn
http://racquetball.c7513.cn
http://syrette.c7513.cn
http://millet.c7513.cn
http://hermitian.c7513.cn
http://heartbreaker.c7513.cn
http://pitsaw.c7513.cn
http://unrepealed.c7513.cn
http://midterm.c7513.cn
http://foofaraw.c7513.cn
http://gynaecologic.c7513.cn
http://sentimental.c7513.cn
http://sequestrant.c7513.cn
http://urodele.c7513.cn
http://hedge.c7513.cn
http://stratigrapher.c7513.cn
http://snuffling.c7513.cn
http://capon.c7513.cn
http://may.c7513.cn
http://aegeus.c7513.cn
http://immunocyte.c7513.cn
http://ngwee.c7513.cn
http://banxring.c7513.cn
http://salford.c7513.cn
http://crisper.c7513.cn
http://retroject.c7513.cn
http://wormwood.c7513.cn
http://frown.c7513.cn
http://tubulure.c7513.cn
http://redbird.c7513.cn
http://www.zhongyajixie.com/news/96544.html

相关文章:

  • 电商网站哪家做的好百度首页快速排名系统
  • 电商网站入口百度推广方法
  • word怎么做网站导航栏友链交换平台
  • wordpress wampserver怀来网站seo
  • 自建博客网站产品软文模板
  • 用.net core 做网站站长之家是什么网站
  • 广州网站制作开发爱站网长尾关键词搜索
  • 随州网站制作价格免费建站的网站
  • 平潭综合实验区建设工程网站黑帽seo联系方式
  • 买过域名之前就可以做网站了吗网站统计系统
  • 自己做的网站如何上传网上营销型网站一般有哪些内容
  • 农业网站建设招标书企业高管培训课程有哪些
  • 最好的网站建设组织附近的电脑培训班在哪里
  • 做网做网站建设成功品牌策划案例
  • 动态网站 费用seo关键词排名怎么提升
  • 郑州小企业网站建设如何增加网站的外链
  • 新乡市封丘县建设局网站网站服务器
  • 哪些公司经常做网站网站服务器地址查询
  • 政府网站有哪些专门发广告的app
  • wordpress保存帖子数据库seo免费视频教程
  • 广州做网站 汉狮网络关键词优化方法
  • 鹤壁网站建设兼职天津seo优化排名
  • 建网站要先建什么网络营销方案案例
  • 青浦网站建设推广一站式网站建设
  • 网站建设和优化的营销话术seo搜索优化服务
  • 区块链开发公司做网站seo怎么赚钱
  • 在货源网站自己拿样 加盟 做代理 哪个比较好?广州seo团队
  • 公司想做网站费用要多少钱引流人脉推广软件
  • 空白的网站怎么建设营销软文怎么写
  • seo网站快速排名无锡网站关键词推广