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

专业建筑设计网站平台网店美工具体要求

专业建筑设计网站平台,网店美工具体要求,兰州展柜公司网站建设,企业做网站有用么一)垃圾回收器概述: 1.1)按照线程数来区分: 串行回收指的是在同一时间端内只允许有一个CPU用于执行垃圾回收操作#xff0c;此时工作线程被暂停#xff0c;直至垃圾回收工作结束#xff0c;在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合#xff0c;出行… 一)垃圾回收器概述: 1.1)按照线程数来区分: 串行回收指的是在同一时间端内只允许有一个CPU用于执行垃圾回收操作此时工作线程被暂停直至垃圾回收工作结束在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合出行回收器的性能表现可以超过并行回收期和并发回收器所以串行回收默认被应用在客户端的client模式下面的JVM中但是在并发能力比较强的CPU上并行回收器产生的停顿时间要大于串行回收器和串行回收相反并行收集可以运用多个CPU同时进行垃圾回收因此提升了应用的吞吐量不过并行回收仍然和串行回收一样采用独占式会造成STW 1.2)按照工作模式来分可以分为并发式垃圾回收器和独占式垃圾回收器: 并发式垃圾回收器可以和用户线程交替进行工作尽可能的来减少应用线程的停顿时间 独占式垃圾回收器一旦运行就停止应用程序中的所有用户线程直到垃圾回收器GC完成   吞吐量:运行用户代码的时间占总运行时间的比例总运行时间程序的运行时间(a)GC垃圾回收的总时间(b) 暂停时间STW时间 收集频率:回收的频率低不代表一次GC的时间短大学洗衣服 一次攒一快洗(时间比较长)VS经常洗(一天一洗时间比较短)频率越高STW时间短一点   1)吞吐量:吞吐量越大越好就是用户线程所执行的时间在整个JVM生命周期中所占用的时间越长那么垃圾频率就越低但是每一次执行GC那么用户线程停止STW时间就越长(类比于洗衣服)一次性的暂停时间就很长用户体验感就可能很差劲但是高吞吐量单位时间内用户线程做的事情更多 2)低延迟:注重每一次的暂停时间变短用户线程暂停时间短那么垃圾回收GC的频率就越高因为暂停时间短每一次GC都收集不了多少垃圾但是线程频繁切换也需要时间每一次本来就注重低延迟要求GC垃圾回收短况且线程上下文切换还消耗时间每一次GC垃圾又回收不了多少那么最终一共的STW时间肯定会比吞吐量的STW时间长(类比于洗衣服)高吞吐量和低延迟是矛盾的 这就类似于洗衣服从宿舍去水房的时间和从水房回到宿舍的时间就类似于线程切换 1)高吞吐量比较好是因为这会让应用程序的最终用户感觉只有应用线程在做生产性工作直觉上吞吐量越高程序运行越快 2)低暂停时间比较好是因为从嘴中用户的角度来看不管是GC还是其他原因来说导致一个应用被挂起始终是不好的这取决于应用程序的类型有的时候甚至于说短暂的200毫秒暂停都有可能直接打断终端用户的体验因此具有低的较大的暂停时间是日常重要的特别是一个交互性的应用程序 3)不幸的是高吞吐量和低暂停时间是一对相互竞争的目标或者说是矛盾如果以高吞吐量优先那么必然需要降低垃圾GC收集的时间频率每一次垃圾收集的时间长一些这也会导致GC需要更长时间的来执行GC 4)相反如果以低延迟为主要目标那么为了降低每一次内存回收时候的暂停时间只能频繁的进行内存回收但是这又引起了年轻代的内存的缩减和导致最终吞吐量的下降 在设计或者使用GC算法的时候必须要确定目标一个GC算法只可能针对于两个目标之一就是只是关注于较大吞吐量和最小暂停时间或者找到一个二者的初衷现在的标准是在最大吞吐量的有限的情况下降低停顿时间 和用户交互的程序延迟要短一些争取在垃圾回收的过程中多线程回收 有的是服务器端吞吐量要高一些 G1垃圾回收器就是可以保证在给定停顿时间的基础上尽量的提高吞吐量 JDK7之前实线Serial OLD GC是CMS的后备方案 在JDK9中取消了红线组合 在JDK14中绿线会被删除 CMS和PSGC框架不同不可以一起使用PNGC和PSGC性能差不多 CMS:不能是在老年代空间满的时候进行使用需要提前进行回收因为CMS是并发的在回收的时候用户线程还在执行用户线程还有可能制造新的垃圾所以需要提前进行回收那如果说回收的比较晚垃圾制造的速度比回收的速度还要快可能CMS回收失败一旦失败所以要使用SOGC作为备用方案赶紧把用户线程停下来进行全部GC应该达到一定阈值以后回收单核CPU是单线程垃圾收集器比多线程垃圾收集器要高因为防止进行大量的线程切换 Serial和Serial old单线程垃圾回收器 ParNew针对于单线程的升级版本是多线程的垃圾回收器: Parallel Scavenge/Parallel Old:吞吐量优先的垃圾回收期以回收内存为主速度比较低这个垃圾回收器只是保证了吞吐量但是实际程序是让用户有最少的等待时间 CMS:垃圾回收器可以保证最小的等待时间就是快不影响用户久等不需要将垃圾全部清除掉多进行几次GC不就行了嘛需要手动指定 为什么CMS和Parallel Scavenge不能一起用设计理念不同 G1:可控垃圾回收时间的垃圾回收器(JDK 9以后HotSpot默认的垃圾的回收器) 分成多个区为什么分区算法是可控的因为分区算法里面有很多区再进行垃圾回收的时候假设一共有4个区他不会保证在这一次GC将A B C D四个区域的垃圾全部回收而是保证的是可控时间但是会保证时间到了就罢工如果时间允许的话G1垃圾回收器会多回收几个区域如果时间不允许我少干一点活到点就下班 分代算法为什么时间不可控 ZGC:停顿时间极短不超过10ms情况下尽量提高垃圾回收吞吐量的垃圾回收器 二)Serial(新生代单线程垃圾回收器)Serial Old(老年代单线程垃圾回收器) 新生代使用serial的时候老年代默认使用Serial Old在执行的时候必须停止所有的用户线程 Serial是最基本历史最久远的垃圾回收器了JDK1.3以前是回收新生代唯一的选择 Serial垃圾回收器是作为HotSpot虚拟机Client模式下默认的新生代垃圾回收器 Serial垃圾收集器采用复制算法串行回收和STW机制的方式执行垃圾回收 除了年轻代以外Serial垃圾收集器还提供了用于老年代垃圾收集的Serial Old垃圾回收器Serial Old垃圾收集器同样也是采用了串行回收和STW机制老年代使用的是标记整理算法 Serial Old是用于运行在客户端模式下面的默认的老年代的垃圾收集器 Serial Old在Server模式下面的主要有两个用途: 1)和新生代的Parallel Scavenge配合使用 2)作为CMS老年代收集器的后备垃圾收集方案 这俩收集器完全就是一个单线程的垃圾收集器但是他的单线程的意义并不仅仅只是他只会使用一个CPU和一条收集线程来去完成垃圾收集工作更重要的是在它进行垃圾收集的时候必须停止其他的工作线程直到它垃圾收集结束 -XX:PrintCommandLineFlags -XX:UseSerialGC 表明新生代使用Serial GC老年代使用Serial Old GC 然后可以通过jps验证一下jinfo -flag UseSerialGC 进程的ID 总结:只是适合于单核CPU对于交互性比较强的应用而言这种垃圾收集器是不能接受的一般在JAVA WEB应用程序中是不会使用这种串行垃圾收集器的 优点:简单而高效和其他收集器的单线程相比对于限定单个CPU的环境来说Serial收集器由于没有线程交互的开销专心于做垃圾收集自然可以活得最高的单线程执行收集效率运行在客户端模式下的虚拟机是一个不错的选择在用户的桌面应用场景中可用于内存不大可以在较短时间内完成垃圾收集只要不是频繁的发生使用穿行回收器是可以接受的 在HotSpot虚拟机中使用-XX:UseSerialGC参数可以指定新生代和老年代都是用串行垃圾收集器等价于新生代使用Serial GC老年代使用Serial Old GC 缺点:串行垃圾回收器会导致STW 三)parNew新生代收集器 1)ParNew新生代并行垃圾回收器和Serial Old单线程串行垃圾回收器或者是CMS(老年代并行垃圾回收器一起使用 2)如果说Serial GC是年轻代中的单线程垃圾收集器那么ParNew收集器就是Serial收集器的多线程版本Par是Parallel的缩写New是回收新生代 3)ParNew垃圾回收器是新生代的多线程垃圾回收器和Serial 没啥区别在年轻代也是使用复制算法STW它是很多JVM在Server模式下面的新生代的默认的垃圾回收器 1)对于新生代来说回收次数频繁使用并行方式比较高效对于老年代回收次数少使用串行的方式高效因为CPU并行需要切换资源穿行可以省去切换线程资源 2)ParNew在服务器端模式下是多核CPU的场景这个时候就不和客户端一样是一个单线程的垃圾回收器了服务器端硬件更多一些在老年代可以使用CMS或者是Serial Old在JDK9中Serial Old不能再和ParewNew使用了在JDK14CMS也被移除了这个时候ParNew就比较尴尬了对于新生代使用多线程垃圾回收器使得GC的时间更短垃圾回收更高效STW时间更短但是在老年代标记整理算法效率比较差涉及到内存碎片整理所以说就是用单线程的了单CPU:同一时刻只能由一个线程执行 3)设置线程数量不要超过CPU核数防止多个线程抢夺CPU和CPU核数相同越好 -XX:PrintCommandLineFlags -XX:UseParNewSerialGC -XX:UseConcMarkSweepGC 1)ParNew收集器运行在多CPU模式下可以充分的利用多CPU多核心等物理硬件资源优势可以更快速的完成垃圾收集来提升程序的吞吐量 2)但是在单个CPU的换进修改ParNew收集器不必Serial收集器更高效虽然Serial收集器是基于穿行回收但是由于CPU不需要频繁的进行切换任务因此可以有效地避免多线程交互过程中产生的一些额外开销当前除了Serial以外目前只有ParNew可以和CMS垃圾收集器配合工作 3)在程序中开发人员可以通过选项-XXUseParNewGc来指定使用ParNew收集器来执行内存回收任务他表示年轻代使用并行收集器并不影响老年代 4)使用-XXParallelGCThreads来限制线程数量默认开启和CPU数据相同的线程数 四)Parallel Scavenge并行新生代垃圾回收器和Parallel Old老年代垃圾回收器: 1)吞吐量优先用户线程执行时间越长越好JDK8默认GC一开始来说Parallel Scavenge吞吐量的并行新生代垃圾收集器一开始它是搭配Serial Old一起来做垃圾收集的但是Parallel Scavenge本身在新生代是并行垃圾回收器老年代用了一个串行的垃圾回收器就不太好所以最终Parallel Old老年代并行垃圾回收器出现了Parallel Scavenge收集器在JDK1.6提供了用于执行老年代垃圾收集的Parallel Old垃圾收集器用来代替来年代的Serial Old垃圾收集器Parallel本身也是采用了标记压缩算法STW 2)Parallel Scavenge和ParNew垃圾回收器性能差不多它们都是回收新生代的但是底层使用的GC框架是不同的是自成一派的包括G1也是自成一派的 3)HotSpot年轻代中除了拥有ParNew收集器是基于并行回收的以外Parallel Scavenge收集器本身也采用了复制算法并行回收和STW机制 那么Parallel收集器的出现是否多此一举呢 1)和ParNew收集器不同Parallel Scavenge收集器的目标则是先打到一个可控制的吞吐量他也是被称之为是吞吐量优先的垃圾回收器 2)自适应调节策略也是Parallel Scavenge的一个重要区别就是在整个JVM运行的过程中根据当前运行的情况来做一个性能监控来调整内存的分配情况来达到最优的策略 1)凡是提高吞吐量的:一定是和后台运行的不和用户交互性场景强的高吞吐量可以高效的利用CPU时间尽快完成程序的运算任务意味着一次STW暂停时间可能长一些主要适合那些在后台计算而不需要交互的任务(但是暂停时间优先就是适用于那些交互性比较强的任务)比如说那些执行批量处理订单处理工资支付科学计算的程序在这种模式下年轻代的大小Eden和Survivor的比例、晋升老年代的对象年龄等参数会被自动调整已达到在堆大小、吞吐量和停顿时间之间的平衡点自适应调节策略也是Parallel Scavenge收集器与ParNew收集器的一个重要区别 2)自适应调节策略:会根据当前JVM的运行情况进行性能监控 动态地去调整内存分配情况意识和达到最优的策略内存分配情况来到到低延迟或者是吞吐量优先的策略和用户交互性强的:保证低延迟暂停时间要短保证在服务后台进行数据运算的要保证高吞吐量 为什么在JDK1.6的时候要使用Parallel Old收集器代替Serial Old收集器呢 在Parallel Old出来之前肯定是只能使用Serial Old收集器 意义非常大因为此时如果没有Parallel Old的时候新生代垃圾回收器使用Parallel而老年代使用Serial Old此时使用Serial Old会存在一定的问题因为既然新生代使用了Parallel那么后台肯定是不和用户做大量交互的服务器端(交互性比较弱的)进行使用通常服务器端硬件的配置比较高肯定是多核CPU如果服务器配置比较低的话单核CPU那么新生代老年代直接都是用串行垃圾回收不就行了吗在一个高性能的场景下硬件配置比较高多核CPU新生代使用并行垃圾回收器效率比较高充分利用CPU多核资源老年代使用串行垃圾回收器此时的性能肯定得不到最大的提升更好地发挥拖累服务器性能的效果了达不到最大吞吐量的一个效果了更好的对硬件性能做发挥 在吞吐量优先的应用场景中也就是服务器完成任务的数量越多越好Parallel收集器和Parallel Old收集器的组合在服务器模式下的内存回收性能比较不错 参数设置:就是-XX:UseParallelGC和-XX:UseParallelOldGC当一个参数开启以后另一个参数也会默认开启 最好CPU核数等于垃圾回收线程数但是还是可以空闲出一些资源留给其他任务来执行 -XX:PrintCommandLineFlags -XX:ParallelGC 根据下面参数来了解自适应调节策略: 1)-XX:MaxGCPauseMillis:设置垃圾收集器最大停顿时间就是STW的时间默认是毫秒此参数设置需要谨慎为了尽可能地把停顿时间控制在MaxGCPauseMills以内收集器在工作的时候会调整堆和其他的一些参数对于用户来说停顿时间越短体验感越好但是在服务器端我们注重与整体的高并发整体的吞吐量所以服务器端适合于Parallel进行控制 2)-XX:GCTTimeRatio:垃圾收集时间占用的总时间的比例用来衡量吞吐量的大小默认是垃圾回收时间不超过1%与前一个-XX:MaxGCPauseMillis参数具有一定的矛盾性暂停时间越长Radio参数就容易超过设定的比例 垃圾收集时间和吞吐量是互补的吞吐量是对于服务器端来说执行任务越多越好 3)假设此时要是设置最大停顿时间是10ms再进行垃圾回收的时候会尽可能的想办法把时间控制在10ms以内要想实现垃圾回收的时间比较短每一次垃圾回收比较短那么就只能控制堆的大小想让停顿时间短那么垃圾回收的时间就比较短垃圾回收器把堆控制的小一些每一次GC时间就比较短但是堆空间比较小堆空间容易满但是可能经常发生GCGC频率增高这样子吞吐量反而降低了就会导致用户线程执行的总时长比较短所以第一个参数使用需要谨慎 4)自适应调节策略:尽量开发中的满足吞吐量和停顿时间具有自动调节功能 5)-XX:UseAdaptiveSizePolicy设置Parallel Scavenge的比例京生老年代的对象的年龄等参数会被自动调整已达堆大小吞吐量和停顿时间之间的平衡点再手动调优比较困难的场合可以直接使用这种自适应的方式进指定虚拟机的最大堆目标的吞吐量和停顿时间让虚拟机自己完成调优工作
http://www.hkea.cn/news/14281895/

相关文章:

  • 主题网站设计欣赏一份完整的电商运营方案
  • c2c网站建设实例网站如何做中英文效果
  • 西安手机定制网站建设wordpress音乐门户主题
  • 搜狐快站代推广app下载
  • 网站建设具体建设流程云浮头条新闻
  • 自己做网站接入微信和支付宝汕头网络营销推广该怎么做
  • 维护网站费用深圳龙岗区住房和建设局网站官网
  • 网站首页被黑老板办公室装修设计
  • 佛山外贸网站建设流程怎么让自己的网站稍微变前面点
  • 建设监督网站视觉设计原则
  • 遵义市城乡建设局安管人员考试网站那个网站攻略做的好
  • 网站建设销售实习报告网站被k 如何恢复
  • 数据上传网站wordpress 文章付费查看
  • 网站建设结论与改进个人网站建设背景和目的
  • 网页开发的基本过程如何评估一个网站seo的优异程度
  • 做网站空网站微信支付怎么做的
  • 我的WordPress网站公章在线制作网站做不了
  • qq空间关闭申请网站主机宝怎么设置网站主页
  • 南通市城乡和住房建设局网站联谊会建设网站
  • 公司企业网站建设步骤centos wordpress 安装
  • 四川杰新建设工程网站百度口碑官网
  • 网站项目的介绍广告策划案
  • 东莞家用台灯东莞网站建设做网站用微软雅黑侵权吗
  • 如何在百度上搜索到自己的网站做同性恋网站犯法吗
  • 外管局网站做延期收汇报告女装网站建设项目可行性分析表
  • 建设银行的网站是什么字体wordpress page模板页
  • 景安 怎么把网站做别名网站可以自己备案吗
  • 做网站导航按钮怎么猛网页设计实训报告步骤
  • 装饰网站做全屏网站图片显示不全
  • 按营销型网站要求重做网站 费用网站合同需要注意什么呢