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

17网站一起做网店档口出租如何建个人网站视频

17网站一起做网店档口出租,如何建个人网站视频,营销策划专业,品牌运营策划对象优先在Eden分配 新生代总可用空间Eden区1个Survivor区#xff08;from区#xff09;的总容量 大多数情况下#xff0c;对象在新生代Eden区中分配当Eden区没有足够空间进行分配时#xff0c;虚拟机将发起一次Minor GC存活下来的对象放入Survivor当对象无法放入Survivor空…对象优先在Eden分配 新生代总可用空间Eden区1个Survivor区from区的总容量 大多数情况下对象在新生代Eden区中分配当Eden区没有足够空间进行分配时虚拟机将发起一次Minor GC存活下来的对象放入Survivor当对象无法放入Survivor空间时通过分配担保机制提前转移到老年代去 HotSpot虚拟机提供了-XXPrintGCDetails这个收集器日志参数告诉虚拟机在发生垃圾收集行为时打印内存回收日志并且在进程退出的时候输出当前的内存各区域分配情况。 大对象直接进入老年代 在Java虚拟机中要避免大对象的原因是在分配空间时它容易导致内存明明还有不少空间时就提前触发垃圾收集以获取足够的连续空间才能安置好它们而当复制对象时大对象就意味着高额的内存复制开销。 大对象就是指需要大量连续内存空间的Java对象最典型的大对象便是那种很长的字符串或者元素数量很庞大的数组。 HotSpot虚拟机提供了-XXPretenureSizeThreshold3145728参数指定大于该设置值的对象直接在老年代分配这样做的目的就是避免在Eden区及两个Survivor区之间来回复制产生大量的内存复制操作。这个参数不能与-Xmx之类的参数一样直接写3MB单位是字节。 注意 -XXPretenureSizeThreshold参数只对Serial和ParNew两款新生代收集器有效HotSpot的其他新生代收集器如Parallel Scavenge并不支持这个参数。如果必须使用此参数进行调优可考虑ParNew加CMS的收集器组合。 长期存活的对象将进入老年代 虚拟机给每个对象定义了一个对象年龄Age计数器存储在对象头中详见深入理解Java虚拟机jvm-对象的内存布局。 《深入理解Java虚拟机》原话对象通常在Eden区里诞生如果经过第一次Minor GC后仍然存活并且能被Survivor容纳的话该对象会被移动到Survivor空间中并且将其对象年龄设为1岁。对象在Survivor区中每熬过一次Minor GC年龄就增加1岁当它的年龄增加到一定程度默认为15就会被晋升到老年代中。对象晋升老年代的年龄阈值可以通过参数-XXMaxTenuringThreshold设置。 博主觉得有点不对~~~什么你敢质疑神书big胆 博主觉得哪里不对呢“该对象会被移动到Survivor空间中并且将其对象年龄设为1岁”这句话 继续说说为啥本博主觉得有点不对以下是《深入理解Java虚拟机》的例子 //VM参数-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:PrintGCDetails -XX:SurvivorRatio8 -XX:MaxTenuringThreshold1 -XX:PrintTenuringDistribution public class TestTenuringThreshold {private static final int _1MB 1024 * 1024;public static void main(String[] args) {demo1();}/*** 此方法中allocation1对象需要256KB内存Survivor空间可以容纳。当-XXMaxTenuringThreshold1时allocation1对象在第二次GC发生时进入老年代*/static void demo1() {byte[] allocation1, allocation2, allocation3;allocation1 new byte[_1MB / 4]; // 什么时候进入老年代决定于XX:MaxTenuringThreshold设置allocation2 new byte[4 * _1MB];allocation3 new byte[4 * _1MB];allocation3 null;allocation3 new byte[4 * _1MB];} }本例中设置了MaxTenuringThreshold1即最大占有阈值1当对象年龄1时将对象存入老年区。但是上述例子中allocation1 对象经过了2次gc才存入老年区第一次gc时并没有被存入老年区。第一次gc后allocation1 的年龄并没有1age0allocation1 被存入了Survivor from区当第二次gc后Survivor from存活的对象被复制交换至Survivor to区此时年龄1age1allocation1 对象被存入老年区。 所以让对象年龄1的行为是发生在Survivor from区和Survivor to区复制交换后 如果我理解错了请一定要纠正我 动态对象年龄判定 HotSpot虚拟机并不是永远要求对象的年龄必须达到-XXMaxTenuringThreshold才能晋升老年代如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半年龄大于或等于该年龄的对象就可以直接进入老年代无须等到-XXMaxTenuringThreshold中要求的年龄。 空间分配担保 jdk6.0_24之后-XX:-HandlePromotionFailure虚拟机中已经不会再使用它空间分配担保规则变为只要老年代的连续空间大于新生代对象总大小或者历次晋升的平均大小就会进行 Minor GC否则将进行Full GC。 前面提到过新生代使用复制收集算法但为了内存利用率只使用其中一个Survivor空间来作为轮换备份因此当出现大量对象在Minor GC后仍然存活的情况——最极端的情况就是内存回收后新生代中所有对象都存活需要老年代进行分配担保把Survivor无法容纳的对象直接送入老年代这与生活中贷款担保类似。老年代要进行这样的担保前提是老年代本身还有容纳这些对象的剩余空间但一共有多少对象会在这次回收中活下来在实际完成内存回收之前是无法明确知道的所以只能取之前每一次回收晋升到老年代对象容量的平均大小作为经验值与老年代的剩余空间进行比较决定是否进行Full GC来让老年代腾出更多空间。 取历史平均值来比较其实仍然是一种赌概率的解决办法也就是说假如某次Minor GC存活后的对象突增远远高于历史平均值的话依然会导致担保失败。如果出现了担保失败那就只好老老实实地重新发起一次Full GC这样停顿时间就很长了。
http://www.yutouwan.com/news/97629/

相关文章:

  • 佛山微网站建设外链生成工具
  • 女生做seo网站推广沧州网站设计师招聘
  • 响应式网站 开发互动平台游戏
  • 做图解的网站浅灰色做网站背景
  • jsq项目做网站实验仪器销信应做何网站
  • 做网站和做软件一样吗百度快照举报网站
  • 网站建设缺乏个性网站模板是什么意思
  • es网站开发wordpress文章js调用
  • 电商网官方网站宝塔一键迁移WordPress
  • 网站建设教程皆赞湖南岚鸿完成网站建设设计合同书
  • 定制网站开发方案南城网站建设公司咨询
  • 在线音乐网站开发教程找建设网站公司哪家好
  • 南宁网站建公司吗R2D安装wordpress
  • 百度深圳网站开发搜索如何进行网店推广
  • 网站app下载平台怎么做asp网站后台验证码错误
  • 专门做门业的网站网站制作的电话
  • 天津综合网站建设商店wap浏览器下载
  • 欧美个人网站动漫设计专业哪个学校比较好
  • 网站建设教案dw网站做啥内容用户多
  • 凡科做网站要钱代理公司韩剧剧情介绍
  • 做科普网站网站开发需要什么基础只是
  • 中山网站关键字优化wordpress更改轮播图
  • 桂林北站有核酸检测点吗装修估价网
  • 工业和信息化网站备案系统做网站域名大概多少钱
  • 网站付费功能描述靖州网站建设
  • 门户网站建设有哪些界面设计风格秀屿网站建设
  • 开网站卖东西需要什么条件织梦网站地图
  • 西部数码网站管理助手卸载产品设计私单网站
  • cms建站流程重庆网站建设及优化
  • 做cpa没有网站怎么办网站界面设计的相关指南