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

网站代码在线优化网络 网站

网站代码在线优化,网络 网站,wordpress 当前分类链接地址,购买一个网址多少钱如何判断是垃圾#xff1f;引用计数器和Root可达性算法 如何进行清除#xff1f;标记清除、复制、标记整理 堆分代模型#xff1f;Eden#xff0c;Surevivor#xff0c;Tenuring 一个对象从创建到消亡的过程#xff1f; 对象什么时候进入老年代#xff1f; 一、GC引用计数器和Root可达性算法 如何进行清除标记清除、复制、标记整理 堆分代模型EdenSurevivorTenuring 一个对象从创建到消亡的过程 对象什么时候进入老年代 一、GCGarbage Collector GC tuningGC调优 tuning调整调优 reference引用 1、Garbage什么是垃圾 没有引用指向的任何对象都是Garbage 2、判断什么是垃圾的两种算法也就是怎么找到垃圾 1reference count引用计数器 有一个对象引用该变量在对象头1有多个就加多个没引用了就-1减到0说明没有引用了判定为垃圾 reference  count不能解决的问题是循环引用问题比如对象A引用对象B对象B引用对象C对象C又引用对象A 相互引用的时候没有任何第三方对象引用这两个对象不能判断为垃圾不会被回收实际上是需要被回收的 2root searching可达性算法 在编程过程中哪些对象或者变量会被定义成root JVM Stack虚拟机栈里面的线程栈里面的变量 Native Stackc/c实现的那些native方法里面使用到的变量会被定义为root对象 静态变量static修饰的对象 常量池里面的对象比如Class对象 一般是一个程序启动后马上要用到的对象 3、找到垃圾之后如何进行清除 三种算法优缺点是指这种算法的优缺点 1Mark Sweep标记清除 特点 从Root对象开始遍历两次一次进行标记一次进行清除算法简单执行效率不稳定垃圾较多而存活对象少的时候效率低内存空间碎片化会更严重 2为解决Mark Sweep算法的缺陷提出Semispace Copying拷贝半区复制算法 实现 将内存一份为二从Root对象开始将有用的对象移动复制到一边移动完成后清除另一边需要被回收的内存当垃圾较多存活对象较少时只需要将存活对象移动到一块很小的区域就能进行垃圾清除效率高同时也能解决内存空间碎片化的问题只扫描一次但移动复制对象需要调整对象的引用会产生对象引用指针移动的开销同时将内存一分为二也会造成内存减半的后果空间浪费如果存活对象比较多的情况下不适合如果存活对象比较多内存又减半会导致内存不足需要老年代进行分配担保当Eden进行回收后往Surivor区进行复制Surivor区发现内存不足对象直接进入老年代 3Mark Compact标记整理 实现及特点 扫描2次从Root开始将有用的对象压缩到内存的头部如果前面有垃圾进行填充需要移动对象效率偏低不会产生内存碎片更方便对象分配不会产生内存减半 总结标记清除和标记整理的算法 是否移动对象移动则回收的时候更复杂不移动则内存再分配时会更复杂是否停顿或者说停顿时间更短移动的时候停顿时间更长不移动的时候停顿时间短甚至可以不停顿吞吐量从吞吐量的角度考虑移动对象吞吐量会更高也就是说根据业务如果在意用户体验不要停顿太长时间的情况下考虑使用不移动对象的垃圾回收算法也就是标记-清除如果对吞吐量要求高的场景使用移动对象的垃圾回收算法也就是复制或者标记整理的垃圾回收算法会更划算 二、JVM内存分代模型 1、堆内存的逻辑分区 G1是逻辑分代但物理内存不分代除此之外都是逻辑分代物理内存也分代 Eden区是new出来的对象真正存放的区域而S0和S1是经过回收会还存活的对象存在区域 GC算法的选择上新生代活着的对象比较少适合Copying算法的垃圾回收器而老年代 存活的对象比较多适合Mark SweepMS和Mark CompactMC这两种算法实现的垃圾回收器 查询年轻代和老年代之间的空间比值NewRatio2意思是年轻代和老年代的比值是1:2 java查询参数小细节java  -XXPrintFlagsFianl  -version   以-开头的标准参数 以-X开头是非标准参数 以-XX开头不稳定参数有些版本支持有些版本可能不支持也可能不是这个命令 2、一个对象从创建到消亡的过程 先尝试栈上分配如果满了在Eden区分配当出现GC时会往S0区域移动多次回收是指在S0和S1上来回移动移动次数可以通过参数配置经过多次回收还存活移动到老年代 MinorGC/YGC:  年轻代垃圾回收年轻代空间耗尽无法再分配空间时触发该GC Major/FullGC:  老年代和年轻代都空间耗尽无法再分配空间时老年代和年轻代都会触发GC 3、对象尝试在栈上分配 1什么样的内容会在栈上分配 线程私有小对象对象比较小而且是线程私有的没有线程共享无逃逸出了线程无其他线程知道这个对象的存在支持标量替换对象只有少量属性完全可以使用这些属性来替换对象 2当线程栈上分配空间不足了会进行线程本地分配Thread Local Allocation Buffer简称TLAB 每个线程会在Eden区有一块小区域是该线程独享的用于分配小对象仅1%多线程的时候不用竞争Eden区域就可以申请的空间可以提升对象分配的效率 4、对象什么时候进入老年代以下两种情况会进入老年代 1通过一个参数设置XX:MaxTenuringThreshold指定回收次数也就是当进行GC时对象在S0和S1之间进行copying超过该参数设置的值就会触发对象进入老年代 该参数在 Paralle Scavenge中默认是15 CMS6 G115 2动态年龄是指将S0里面的存活对象全部拷贝到S1的时候如果发现全部对象的大小超过了S1的空间的50%则会触发动态年龄淘汰机制就是把年龄最大的那些对象放入老年代而不管他的copying次数是否超过设置的阈值
http://www.hkea.cn/news/14568570/

相关文章:

  • 电商网站布局设计天进品牌营销策划公司
  • 网站没有管理员权限设置深圳网络推广案例
  • 凉山彝族自治州网站建站谷歌浏览器chrome官网
  • 手机网站设计背景图片黄山旅游攻略必去景点
  • 网站建设论文文献免费外链发布平台
  • 网站建设模板型和定制型重庆新闻联播回放今天
  • 如果制作一个自己的网站免费推广神器
  • 南阳建设工程信息网站乐陵是哪个省哪个市的
  • 做区位图的网站手机app官网免费下载
  • 微信做网站的公司上海保洁公司
  • seo企业建站系统seo是什么岗位简称
  • 公司网站开发建设搜索引擎优化指的是
  • 网站加图标关键词挖掘爱网站
  • seo对各类网站的作用对做网站公司的疑问
  • 网站推广代运营苏州公司网站建站
  • 厦门网站制作公司推荐毕节市住房和城乡建设局网站
  • 浙江省网站备案流程辉县网站建设
  • 网站建设在哪品牌建设工作实施方案
  • 网站服务器续费网站建设与运营答案
  • 做网站公司宁波表格制作excel
  • 朔州市住房与城乡建设厅网站网站系统维护
  • 网站建设维护杭州做网站设计能赚钱吗
  • 杭州酒店网站建设制作付费下载网站
  • 哪个网站有适合小学生做的题wordpress 中国版
  • 长春建一个网站大概要多少钱网站整合建设方案
  • 网站到底怎么做出来的深圳工业设计公司推荐
  • 免费网站建设专业的公司如何做网站设计
  • 新浪短链接在线生成石家庄网站seo顾问
  • 贵阳市城乡建设部网站长泰建设局网站
  • 网页设计与网站建设实例教程答案网站建设需要的语言